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

已知当月首日星期几,如何编写Python函数计算指定日期对应的星期?

问题解答

报错name 'date' is not defined的原因

你在全局作用域执行print(returnDay(date))时,全局没有定义过名为date的变量:函数returnDay内部定义的date属于局部作用域变量,仅在函数内部生效,外部无法直接访问。
另外你现有代码的逻辑和需求完全不匹配:需求明确已知当月第一天为星期五,不需要额外让用户输入首日;同时需求要求函数接收1-31的日期作为参数,你反而在函数内部读取用户输入的日期,直接覆盖了传入的参数,逻辑完全错位。

1-31范围校验的实现方法

在函数入口位置先判断传入的参数是否在1到31的区间内,不满足条件直接返回错误提示即可。

修正后可直接运行的完整代码

def returnDay(date):
    # 范围校验逻辑
    if not 1 <= date <= 31:
        return "输入的不是当月有效日期"
    # 固定当月第一天为星期五
    day_names = ['Sunday','Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    first_day_idx = day_names.index('Friday')
    # 计算目标日期的星期索引
    target_day_idx = (first_day_idx + date - 1) % 7
    return day_names[target_day_idx]

# 测试用例
print(returnDay(1))   # 输出 Friday
print(returnDay(10))  # 输出 Sunday
print(returnDay(31))  # 输出 Sunday
print(returnDay(0))   # 输出 输入的不是当月有效日期
print(returnDay(35))  # 输出 输入的不是当月有效日期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:02