Функция Python печатает Нет - PullRequest
1 голос
/ 18 октября 2010

У меня есть следующее упражнение:

Параметр weekday равен True, если он будний день и параметр отпуска Правда, если мы в отпуске. Мы спать, если это не будний день или мы в отпуске Верните True, если мы спать в.

Вот что я сделал, но вторая функция печати печатает только 'None'.

def sleep_in(weekday, vacation):
    if(not weekday or vacation):
        return True

print(sleep_in(False, False))
print(sleep_in(True, False))
print(sleep_in(False, True))

Выход:

True
None
True

1 Ответ

5 голосов
/ 18 октября 2010

Функции в Python возвращают None, если явно не указано иное.

В приведенной выше функции вы не учитываете случай, когда день недели равен True.Интерпретатор достигает конца функции без чтения оператора возврата (поскольку условие, предшествующее вашему, оценивается как False), и возвращает None.

Edit :

def sleep_in(weekday, vacation):
    return (not weekday or vacation)

Вот и все =)

...