Python函数不打印任何内容

Python函数不打印任何内容,python,function,return-value,Python,Function,Return Value,我有以下练习: 如果参数weekday为True,则该参数为True 一个工作日,以及参数“假期” 如果我们在度假,这是真的。我们 如果不是工作日或工作日,就睡懒觉 我们在度假。如果我们 睡懒觉 下面是我所做的,但是第二个print函数只打印“None” def sleep_in(weekday, vacation): if(not weekday or vacation): return True print(sleep_in(False, False)) print

我有以下练习:

如果参数weekday为True,则该参数为True 一个工作日,以及参数“假期” 如果我们在度假,这是真的。我们 如果不是工作日或工作日,就睡懒觉 我们在度假。如果我们 睡懒觉

下面是我所做的,但是第二个print函数只打印
“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

python中的函数返回
None
,除非明确指示要执行其他操作

在上面的函数中,您不考虑工作日为
True
的情况。解释器在不读取返回语句的情况下到达函数末尾(因为预先指定您的条件的计算结果为
False
),并返回
None

编辑

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

好了=)

你不需要括号there@SilentGhost:是的,不需要括号,但可以说它们增加了清晰度。@delnan我认为将这种比较逻辑括在括号中是一种很好的做法,即使优先规则使其变得不必要。