#python
Вопрос:
def mnum(num, num2, num3):
if (num >= num2 and num >= num3):
return num
elif (num2 >= num and num2 >= num3):
return num2
elif (num3 >= num and num3 >= num2):
return num3
else:
print("You should choose from 1 , 2 , 3 !")
num = print(input('choose from 1 , 2 , 3: '))
num2 = print(input('choose from 1 , 2 , 3 (do not choose the same first one): '))
num3 = print(input('choose from 1 , 2 , 3 (do not choose the same first and seconed one): '))
print(mnum(num , num2 , num3))
Ошибка, которую я получаю, такова '>=' not supported between instances of 'NoneType' and 'NoneType'
.
Комментарии:
1.
input()
уже распечатывает приглашение. Тебе не нужно звонитьprint()
.
Ответ №1:
print
является функцией, которая возвращает None
. т. е.:
a = print(1)
assert a is None
Вам нужно сохранить его в переменной отдельно. Вы также должны преобразовать входные данные в целые числа, так как возвращаемое значение input
является строкой:
num = int(input('choose from 1 , 2 , 3: '))
num2 = int(input('choose from 1 , 2 , 3 (do not choose the same first one): '))
num3 = int(input('choose from 1 , 2 , 3 (do not choose the same first and seconed one): '))
print(num)
print(num2)
print(num3)
print(mnum(num , num2 , num3))
Ответ №2:
У вас есть print()
за пределами вашей input()
s. Тебе это не нужно. Просто удалите их, и код запустится. Проблема в том , что print()
ничего не возвращает, поэтому, когда вы пишете num = print(input(...))
, num
присваивается None