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

Python代码运行结果异常,寻求问题排查及代码整洁优化建议

问题修复方案

核心错误原因

你代码的逻辑失效根源是elif Today == Days[0:5]的写法错误:Days[0:5]是列表切片操作,返回的是包含周一到周五的子列表,单个字符串和列表做相等判断,结果永远为False,所以工作日的分支永远无法触发。

修正后的可运行代码

# 遵循PEP8命名规范,变量用小写加下划线
days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
SHOPPING_THRESHOLD = 2000

# 输入时增加空格清理、大小写格式化,提升容错率
cash = int(input('Cash = '))
today = input('Today is: ').strip().capitalize()

# 先判断输入合法性,逻辑层级更清晰
if today not in days:
    print('Today is not in Days')
elif today == days[6]:
    # 周日分支
    if cash > SHOPPING_THRESHOLD:
        print('Omg, let\'s go shopping!')
    else:
        print('Get some rest and watch TV.')
else:
    # 工作日分支
    print('Work hard until you die.')

代码整洁优化建议

  • 变量命名遵循Python通用的PEP8规范:普通变量用小写加下划线格式,常量全大写,只有类名使用大驼峰格式,避免和内置对象、语法规则混淆
  • 把代码里的硬编码魔法值(比如2000的购物阈值)提取成常量,后续修改参数时不用翻找逻辑代码
  • 输入环节增加容错处理:比如现金输入时可以捕获非数字输入的异常,星期输入增加大小写、前后空格的兼容处理,避免用户输入不规范直接报错
  • 调整条件判断的优先级,先做输入合法性校验,再走业务分支,逻辑层级更清晰,可读性更高
  • 输出的字符串统一格式,增加必要的标点和大小写规范,用户体验更好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:45:07