You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么以下Python自定义sleep_in函数无法正确返回预期的False值

Python sleep_in函数返回值异常问题分析

根因定位

  • 类型匹配错误:代码中将字符串类型的weekday参数直接与列表类型的工作日集合做相等判断,字符串和列表是完全不同的数据类型,weekday == ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] 这个判断恒为False,第一个分支永远不会触发。
  • 逻辑判断错误:第二个分支的weekday != ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] 因为上述类型不匹配的问题恒为True,or逻辑下只要任意一个条件为真整个表达式就为真,因此无论传入的weekday是什么,只要vacation为No都会直接返回True,永远走不到返回False的else分支。

修复方案

调整判断逻辑为校验传入的weekday是否属于工作日列表,同时简化冗余的分支:

def sleep_in(weekday, vacation):
    workdays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
    # 非工作日 或 休假状态下可以睡懒觉
    return weekday not in workdays or vacation == 'Yes'

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

调整后调用sleep_in('monday', 'No')会正确返回预期的False。

内容的提问来源于stack exchange,提问作者aachebe1029

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:06:03