python не обрабатывает None
Не могу понять, почему в последнем блоке не работает if one_day(human) is not None и в список добавляется куча значений None
import random
class Life:
__target_karma = 500
__karma = 0
def get_target_karma(self):
return self.__target_karma
def get_karma(self):
return self.__karma
def set_karma(self,point):
self.__karma += point
def reach_enlightment(self):
if self.get_karma() >= self.get_target_karma():
return True
def one_day(life):
sin_num = random.randint(1, 10)
sins = ['KillError','DrunkError','CarCrashError','GluttonyError','DepressionError']
try:
if sin_num == 10:
raise BaseException
except BaseException:
exception = random.choice(sins)
return exception
else:
life.set_karma(random.randint(1, 7))
human = Life()
days_passed = 0
earned_sins = []
while True:
if human.reach_enlightment():
print('Просветление произошло через {} дней'.format(days_passed))
break
else:
one_day(human)
days_passed += 1
if one_day(human) is not None:
earned_sins.append(one_day(human))
print(earned_sins)
Ответы (1 шт):
Автор решения: TheNick - Ник
→ Ссылка
Возможное решение изменить
one_day(human)
days_passed += 1
if one_day(human) is not None:
earned_sins.append(one_day(human))
на
x = one_day(human)
days_passed += 1
if x is not None:
earned_sins.append(x)