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

如何为一周各天分配数字值,修复Python代码中周日对应数字7的返回错误

问题修复说明

根因分析

Python 中range(start, end)属于左闭右开区间,range(1,7)实际仅覆盖1到6的整数,不包含数值7。当输入7时会直接触发第一个判断逻辑返回Unknown,不会执行到后续day == 7的分支,这和判断顺序无关。

修复代码

将第一个判断的区间上限调整为8即可,修改后完整可运行代码如下:

def dayOfWeek(day): 
    if day not in range(1, 8):
        return "Unknown"
    elif day == 1:
        return "Monday"
    elif day == 2:
        return "Tuesday"
    elif day == 3:
        return "Wednesday"
    elif day == 4:
        return "Thursday"
    elif day == 5:
        return "Friday"
    elif day == 6:
        return "Saturday"
    elif day == 7:
        return "Sunday"


assert (dayOfWeek(0) == "Unknown")
assert (dayOfWeek(7) == "Sunday")
assert (dayOfWeek(1) == "Monday")
assert (dayOfWeek(3) == "Wednesday")

可选优化方案

使用字典映射替代多分支判断,代码更简洁,后续维护调整也更方便:

def dayOfWeek(day):
    day_mapping = {
        1: "Monday",
        2: "Tuesday",
        3: "Wednesday",
        4: "Thursday",
        5: "Friday",
        6: "Saturday",
        7: "Sunday"
    }
    return day_mapping.get(day, "Unknown")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:45:03