TypeError: '>' не поддерживается между экземплярами 'int' и 'str' в моем коде, где значения уже являются целыми числами - PullRequest
1 голос
/ 17 июня 2020

Ниже мой код. Я новичок в программировании, поэтому мне нужна ваша помощь. Я не знаю, почему я получаю эту ошибку, потому что, когда я попытался получить type() всего, он показывает class int.

Мой код

n = int(input("Enter the length of list:"))
lst = input("Enter the numbers with a space:")
numbers = lst.split()
if len(numbers) == n:
    maxn = -2147483647
    minn = 2147483647
    for number in numbers:
        y = int(number)
        if y > maxn:
            maxn = number
        if y < minn:
            minn = number
    print(maxn, minn)
else:
    print("Numbers greater or less than length")

Но я получение этой ошибки на max и min

Traceback (последний вызов последним): файл «test.py», строка 9, если y> maxn: TypeError: '>' not поддерживается между экземплярами int и str

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Входные данные в python всегда обрабатываются как строки, поэтому их необходимо преобразовать. Строка 3 сделает это за вас. Кроме того, знаете ли вы, что python может обрабатывать числа любого размера? Можно go большой!

n = int(input("Enter the length of list:"))
lst = input("Enter the numbers with a space:")
numbers = lst.split()
if len(numbers) == n:
    maxn = -2147483647
    minn = 2147483647
    for number in numbers:
        y = int(number)
        if y > maxn:
            maxn = y
        if y < minn:
            minn = y
    print(maxn, minn)
else:
    print("Numbers greater or less than length")
0 голосов
/ 17 июня 2020

Попробуйте это,

n = int(input("Enter the length of list:"))
lst = input("Enter the numbers with a space:")
numbers = lst.split()
y=0
if len(numbers) == n:
    maxn = -2147483647
    minn = 2147483647
    for number in numbers:
        y = int(number)
        if y > maxn:
            maxn = int(number)#changed here
        if y < minn:
            minn = int(number)#changed here
    print(maxn, minn)
else:
    print("Numbers greater or less than length")

может быть более короткая версия,

n = int(input("Enter the length of list:"))
lst = input("Enter the numbers with a space:")
numbers = lst.split()
numbers = [ int(x) for x in numbers ]
print(max(numbers),min(numbers))
...