Ошибка TypeError: '<' not supported between instances of 'NoneType' and 'int'
from random import randint
class Die:
def __init__(self, sides):
self.sides = sides
def roll_die(self):
print(f'Кубик брошен! \nВыпало: {randint(1, self.sides)}')
my_die = Die(20)
x = my_die.roll_die()
if x < 20:
my_die.roll_die()
else:
print('Победа!')
При выполнении программы возникает следующая ошибка:
Traceback (most recent call last): File "c:/Users/Computer/Desktop/Учеба/python_work/9_14v2.py", line 12, in <module> if x < 20: TypeError: '<' not supported between instances of 'NoneType' and 'int'
Как это можно исправить, и в чем я был не прав?
Ответы (1 шт):
Автор решения: Sergey Rufanov
→ Ссылка
У вас по коду ожидается, что функция roll_die() возвращает int, а фактически она ничего не возвращает (о чем Python вам в ошибке и говорит) - в ней даже нет return-а.. Т.е. должно быть:
def roll_die(self):
result = randint(1, self.sides)
print(f'Кубик брошен! \nВыпало: {result}')
return result