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

如何提取datetime对象中的月份并匹配字典对应键获取值?

解决方案

核心就是从已有的birthdate datetime对象中提取月份英文全称(和你字典的键完全匹配),直接用这个字符串作为键去字典里取值即可。

完整修改代码

from datetime import datetime  # 原代码缺少这个关键导入,必须加上

# 接收生日输入
birthday = input("请输入你的生日,格式为:dd/mm/yyyy。")
birthdate = datetime.strptime(birthday, "%d/%m/%Y")
birthdate_display = birthdate.strftime("%d %B")
print(f"你的生日是:{birthdate_display}")

# 名人出生月字典
famousBirthdays = {
    "January": "莫扎特",
    "February": "查尔斯·达尔文",
    "March": "阿尔伯特·爱因斯坦",
    "April": "伊丽莎白二世",
    "May": "林奈",
    "June": "约瑟芬·贝克",
    "July": "弗里达·卡罗",
    "August": "巴拉克·奥巴马",
    "September": "伊丽莎白一世",
    "October": "甘地",
    "November": "玛丽·居里",
    "December": "艾米莉·狄金森"
}

# 匹配对应名人
month_name = birthdate.strftime("%B")
famous_person = famousBirthdays[month_name]
print(f"和你同月出生的名人是:{famous_person}")

关键细节说明

  1. 导入模块:原代码没写from datetime import datetime,运行会报错,必须加上才能使用datetime的解析和格式化方法。
  2. 提取月份全称:strftime("%B")会返回月份的英文全称(如May、January),刚好和你字典的键完全一致,直接用这个字符串作为索引就能拿到对应名人。
  3. 可选:异常处理:如果要防止用户输入错误格式,可以加个异常捕获:
try:
    birthdate = datetime.strptime(birthday, "%d/%m/%Y")
    # 后续逻辑
except ValueError:
    print("格式错误!请严格按照dd/mm/yyyy输入。")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:42:40