为什么 python 中的函数不 return false

Why doesn't functions doesn't return false in python

def sleep_in(weekday, vacation):
    if weekday == ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] and vacation == 'Yes':
        return True
    elif weekday != ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] or vacation == 'Yes':
        return True
    else:
        return False


print(sleep_in('monday', 'No'))

这里有一些更好的代码:

def sleep_in(weekday, vacation):
    if vacation:
        return True
    if weekday in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']:
        return False
    else:
        return True

这段代码之所以有效,是因为它首先检查 vacation,然后检查 returns True 假期是否为真(您可以为此简单地执行 if vacation)。

接下来,如果 vacation 为 false,它会计算下一个 if 语句,并查看 weekday 参数是否在 ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] 的列表内。如果是,则 returns False(否 sleep_in)。如果不是,则表示今天是周末 sleep_in returns 为真。

我认为这就是您想要实现的目标。