Другие объяснили, что происходит, но поскольку у Python есть ответ, я воспользуюсь им, чтобы показать вам, что python считает, что происходит.
>>> nums = input('insert space separated numbers ')
insert space separated numbers 1 2 3 4 5
>>> nums
'1 2 3 4 5'
>>> type(nums)
<class 'str'>
>>> nums.split(' ')
['1', '2', '3', '4', '5']
>>> type(nums.split(' '))
<class 'list'>
Здесь все имеет смысл , Мы читаем строку от пользователя, и когда мы разделяем ее, мы получаем список.
>>> type(nums.split(' ')[0])
<class 'str'>
Это все еще имеет смысл, но это то, что требует объяснения. Мы разбиваем строку на список символов. Чтобы интерпретировать это как целое число, нам нужно вызвать для него метод int
.
>>> [int(x) for x in nums.split(' ')]
[1, 2, 3, 4, 5]
Собрать все вместе
>>> max([int(x) for x in nums.split(' ')])
5
Чтобы объяснить более подробно выше,
>>> '1' == 1
False
>>> '1' < 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'