【问题标题】:Why doesn't functions doesn't return false in python [duplicate]为什么函数在python中不返回false [重复]
【发布时间】:2021-10-19 18:09:57
【问题描述】:
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'))

【问题讨论】:

  • weekday 以字符串形式给出,因此 weekday != <some list> 将始终为 True。你的意思是写weekday not in <some list>
  • 注意:您的前两个条件可以替换为一个条件:if vacation == "Yes" or weekday not in list_of_weekdays

标签: python return boolean-operations


【解决方案1】:

这里有一些更好的代码:

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

此代码有效,因为它首先检查vacation,并在假期为真时返回True(您可以为此简单地执行if vacation)。

接下来,如果假期为假,则评估下一个if 语句,并查看工作日参数是否在['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] 的列表中。如果是,则返回 False(无 sleep_in)。如果不是,则表示这是一个周末,并且 sleep_in 返回 true。

我认为这就是你想要达到的目标。

【讨论】:

  • 非常感谢。
  • 没问题,祝你的 pythonic 冒险好运!
猜你喜欢
  • 2020-10-17
  • 2019-09-04
  • 2016-06-20
  • 2019-01-02
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
相关资源
最近更新 更多