Информатика, вопрос задал PolniyBezsar , 1 год назад

Я абсолютно не знаю информатику, решите пожалуйста. Тема ветвлений на языке python. Буду очень благодарен!

Приложения:

ILFV183: на каком языке программирования нужно решать задачки?
PolniyBezsar: Python
ILFV183: еще один вопрос, я могу использовать все свои знания или ограничется примерно на вашем уровне?
PolniyBezsar: Конечно

Ответы на вопрос

Ответил ILFV183
1

Ответ:

1:

n, m = map(int, input().split())

print(f'Найбольшее число {[n, m][m > n]}')

2:

print(f'Найбольшее число {max(input().split(), key=int)}')

3:

lst = [input().split(': ') for _ in range(3)]

lst.sort(key=lambda x: int(x[1]), reverse=True)

if lst[0][1] == lst[1][1]:

   print(f'{lst[0][0].split()[-1][:-1]} и {lst[1][0].split()[-1][:-1]} старше {lst[2][0].split()[-1][:-1]}')

else:

   print(f'{lst[0][0].split()[-1][:-1]} старше всех')

Объяснение:

1 - программа принимает на вход строку из двох чисел, разделенных пробелом, делает из нее генератор чисел и распаковывает между переменными n и m. Код [n, m][m > n], это список состоящий из двух элементов, переменных n и m, и сразу же обращаемся к нему по индексу, который будет булевым значением, которое мы получи в результате выражения m > n, если это выражение истинно то мы получаем True которое еквиваленто 1, и в последствии мы получаем елемент под первым индексом, хочу обратить ваше внимание индексация начинается с нуля, из списка [n, m], и если будет введено допустим 1 5, то мы получим следущий текст: "Найбольшее число 5".

2 - программа получает на вход строку из чисел записаных через пробел, делает из этой строки список строк и выдает самое большое число, key=int  нужен для того чтобы указать как сравнивать елементы последовательности, просто если у нас будут числа 19 и 100, и они будут сравнивать как строки, функция max вернет 19, в этом случае мы говорим что этот список строк нужно сравнить как числа и вернуть самое большое из них.

3 - программа принимает на вход три строки форматом как в примерах, создает из них список с вложеными списками, потом он сортируется по 2 елементу каждого вложенного списка, и по условию если возраст в первом вложеном списке равняется возросту во втором вложенном списке то выводиться строка: "<имя из первого вложенного списка> и <имя из второго вложенного списка> старше <имя из третьего вложенного списка>", если же кто-то один старше всех то выводится следущая строка: "<имя из первого вложенного списка> старше всех"

lst[0][0].split()[-1][:-1] подобное выражение нужно для того, чтобы, допустим, из строки "Возраст Антона" получить "Антон"


PolniyBezsar: Спасибо большое, благополучия и всего самого наилучшего Вам!!
ILFV183: взаимно
Новые вопросы