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

Python新手求助:输入月份数字输出对应月份名称的代码纠错

修正获取月份名称的Python代码

嘿,我来帮你排查下代码里的问题,然后给你修正后的版本~

原代码的核心问题

  • 输入类型不匹配:不管是Python2的raw_input()还是Python3的input(),返回的都是字符串类型,但你的字典switcher里的键是整数,所以输入的数字字符串根本匹配不上,每次都会输出"Invalid month"。
  • 语法适配问题:如果用的是Python3,print是内置函数,必须加括号;而且Python3里已经没有raw_input()了,统一用input()。
  • 函数参数设计冗余:你给switch_demo函数设置了默认参数argument=value,但调用时又传了value,这个默认参数完全没起到作用,反而让代码逻辑变混乱。

修正后的代码(Python3版本,主流推荐)

# 处理用户输入,转成整数,同时加异常处理防止非数字输入
try:
    month_num = int(input("Enter value to print month: "))
except ValueError:
    print("请输入1-12之间的有效数字哦")
    exit()

def get_month_name(month):
    month_map = {
        1: "January",
        2: "February",
        3: "March",
        4: "April",
        5: "May",
        6: "June",
        7: "July",
        8: "August",
        9: "September",
        10: "October",
        11: "November",
        12: "December"
    }
    # 用get方法获取对应值,找不到就返回默认提示
    return month_map.get(month, "Invalid month (请输入1-12之间的数字)")

# 调用函数并打印结果
print(get_month_name(month_num))

代码说明

  1. 用int()把用户输入的字符串转成整数,解决类型不匹配的问题。
  2. 增加try-except异常处理,防止用户输入字母、符号等非数字内容导致程序崩溃。
  3. 简化函数参数设计,直接传入处理好的月份数字,逻辑更清晰。
  4. 把字典名改成month_map,比switcher更语义化,可读性更好。

如果你还在使用Python2,只需要把input()改回raw_input(),print去掉括号就行,不过还是建议尽快升级到Python3哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:33:23