Python函数输出None

2 投票
1 回答
14182 浏览
提问于 2025-04-16 05:41

我有一个练习题:

参数 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)

这样就好了 =)

撰写回答