- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
如何使用Python创建生日提醒系统
生日提醒系统是一个存储和管理生日信息的程序,通知用户即将到来的生日。在本教程中,我们将使用Python构建一个简单而有效的生日提醒系统,利用其强大的日期处理功能和内置库。
让我们将这个过程分解为可管理的步骤,每个步骤都附有Python代码示例和解释。
1.搭建环境
首先,我们将为生日提醒系统导入必要的模块:
导入日期时间
导入json
从集合导入defaultdict
datetime模块帮助我们处理日期。
json允许我们存储和检索生日数据。
集合模块中的defaultdict简化了我们的数据结构。
2.管理生日数据
让我们创建函数来添加、保存和加载生日数据:
defadd_birthday(生日、姓名、日期):
生日[姓名]=日期
返回生日
defsave_birthdays(生日,filename=birthdays.json):
将open(文件名,w)作为f:
json.dump(生日,f)
defload_birthdays(filename=birthdays.json):
尝试:
将open(文件名,r)作为f:
返回json.load(f)
除了文件未找到错误:
返回{}
#用法示例:
生日={}
生日=add_birthday(生日,爱丽丝,1990-05-15)
生日=add_birthday(生日,鲍勃,1985-12-31)
打印(生日)
保存生日(生日)
加载的生日=加载的生日()
打印(已加载的生日)
这些功能使我们能够:
将新的生日添加到我们的字典中
将生日字典保存到JSON文件
从JSON文件加载生日
当您运行此代码时,您应该看到:
{爱丽丝:1990-05-15,鲍勃:1985-12-31}
{爱丽丝:1990-05-15,鲍勃:1985-12-31}
此输出显示我们已成功添加生日、将它们保存到文件中并将它们加载回我们的程序中。
3.实现提醒系统
现在,让我们创建提醒系统的核心功能:
defdays_until_birthday(生日,current_date):
next_birthday=datetime.datetime.strptime(生日,%Y-%m-%d).date().replace(year=current_date.year)
如果下一个生日当前日期:
next_birthday=next_birthday.replace(year=current_date.year+1)
返回(next_birthday-current_date).days
defget_upcoming_birthdays(生日,current_date,days_ahead=7):
即将到来=defaultdict(列表)
对于名字,生日在birthdays.items()中:
days_until=days_until_birthday(生日,当前日期)
如果days_until=days_ahead:
即将到来的[days_until].append((姓名,生日))
即将返回
defprint_reminders(即将推出):
对于天数,生日排序(upcoming.items()):
如果天数==0:
print(今天的生日:)
elif天==1:
print(明天的生日:)
别的:
print(f{days}天后的生日:)
对于姓名、生日日期:
print(f-{名称}({日期}))
打印()
#用法示例:
生日={
“爱丽丝”:“1990-05-15”,
“鲍勃”:“1985年12月31日”,
“查理”:“1995年9月20日”
}
#假设今天是2023年9月18日
当前日期=日期时间.日期(2023,9,18)
即将到来=get_upcoming_birthdays(生日,当前日期)
打印提醒(即将推出)
以下是每个函数的作用:
days_until_birthday:计算距离下一个生日还有多少天。
get_upcoming_b
您可能关注的文档
最近下载
- 2024-2030年天然石墨行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 飞机培训课件:常见电子部件拆装v2.0.pptx
- 清洁照料初级养老护理员培训.pptx
- 第二章有理数的运算 综合与实践 进位制的认识与探究 教学设计 2024—2025学年人教版数学七年级上册.docx
- 牛津译林版八年级英语上册Unit3as…as结构和反身代词同步语法讲解和练习.docx
- 铁路道岔转辙器综合病害分析与整治.doc VIP
- 2024年山东建筑大学工程造价案例分析期末考试复习试题(函授).pdf VIP
- Kolb学习风格问卷(KLSI-1984).PDF
- 中国成人失眠诊断与治疗指南(2023版)解读.pdf
- 【网红KOL报价】众灿互动2月刊例表..xlsx VIP
文档评论(0)