ошибка в коде, не могу понять где

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
windows 10 64 bit
python 3.9.1

Если не конвертировать(если это так можно назвать) строки в цифры
Код:
ninjas = print(input("Веди количесвто противников: "))
ninjas = int()
и при этом писать вот так,
Код:
ninjas = print(int(input("Веди количесвто противников: ")))

if ninjas <= 50 and ninjas > 30 or ninjas > 50:
    print("их слишком много")
elif ninjas <=30 and ninjas > 10:
    print("тяжело, но я с ними справлюсь")
elif ninjas < 10:
    print("я с ними легко справлюсь")
то выдаёт ошибку.
Traceback (most recent call last):
File "C:\Users\COMPS\AppData\Local\Programs\Python\Python39\lern.py", line 3, in <module>
if ninjas <= 50 and ninjas > 30 or ninjas > 50:
TypeError: '<=' not supported between instances of 'NoneType' and 'int'


Также если конвертировать строки в цифры
Код:
ninjas = print(input("Веди количесвто противников: "))
ninjas = int()

if ninjas <= 50 and ninjas > 30 or ninjas > 50:
    print("их слишком много")
elif ninjas <=30 and ninjas > 10:
    print("тяжело, но я с ними справлюсь")
elif ninjas < 10:
    print("я с ними легко справлюсь")
То всегда выдаёт я с ними легко справлюсь, не зависимо от числа. Как решить эти две проблемы? Что я делаю не так?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
В первом случае
Python:
ninjas = print(input("Веди количесвто противников: "))
ninjas = int()
переменная ninjas будет равна 0, это можно увидеть с помощью print(ninjas),
во втором случае
Python:
ninjas = print(int(input("Веди количесвто противников: ")))
переменная будет иметь значение None, так как print() ничего не возвращает.
Попробуйте сделать так:
Python:
ninjas = int(input("Веди количесвто противников: "))
print(ninjas)

if ninjas <= 50 and ninjas > 30 or ninjas > 50:
    print("их слишком много")
elif ninjas <=30 and ninjas > 10:
    print("тяжело, но я с ними справлюсь")
elif ninjas < 10:
    print("я с ними легко справлюсь")
 

Форум IT Специалистов