Python函数输出None
我有一个练习题:
参数 weekday 如果是工作日就为 True,参数 vacation 如果我们在度假就为 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 个回答
6
在Python中,函数默认会返回None
,除非你特别指示它返回其他东西。
在你上面的函数中,你没有考虑到当weekday为True
的情况。解释器在执行到函数的最后时,没有遇到返回语句(因为在你之前的条件判断结果是False
),所以它返回了None
。
编辑:
def sleep_in(weekday, vacation):
return (not weekday or vacation)
这样就好了 =)