news 2026/2/17 14:29:55

编写朋友生日提醒助手,录入朋友生日,联系方式,自动生成生日祝福短信/微信模板,提前提醒生日,还能推荐合适的生日礼物,避免忘记朋友生日,维护友情。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
编写朋友生日提醒助手,录入朋友生日,联系方式,自动生成生日祝福短信/微信模板,提前提醒生日,还能推荐合适的生日礼物,避免忘记朋友生日,维护友情。

1. 实际应用场景描述

场景

小王是一名职场人,朋友很多,但工作忙碌,经常忘记朋友的生日。

每次想发祝福时,要么太晚,要么祝福语千篇一律,甚至不知道送什么礼物合适。

他希望有一个工具能帮他:

- 记录朋友的生日和联系方式

- 自动生成个性化的生日祝福短信/微信模板

- 提前提醒他准备祝福和礼物

- 推荐合适的生日礼物,避免踩雷

痛点

- 忘记生日 → 影响友情

- 祝福语单调 → 缺乏心意

- 礼物选择困难 → 怕不合适

- 手动记录麻烦 → 容易丢失

2. 核心逻辑讲解

1. 录入朋友信息(姓名、生日、联系方式、关系)

2. 祝福语生成:根据关系(死党/普通朋友/同事)生成不同风格的祝福模板

3. 礼物推荐:根据关系+预算推荐礼物类别

4. 提前提醒:在生日前 N 天提醒用户

5. 数据持久化:用 JSON 文件存储朋友信息

6. 主程序交互:菜单式操作,方便使用

3. 模块化代码结构

birthday_helper/

├── main.py # 主程序入口

├── friends.py # 朋友信息管理

├── blessings.py # 祝福语生成

├── gifts.py # 礼物推荐

├── reminder.py # 提醒功能

├── utils.py # 工具函数

└── README.md # 项目说明

4. 核心代码实现

"friends.py"

import json

import os

FILE = "friends.json"

def load_friends():

if os.path.exists(FILE):

with open(FILE, "r", encoding="utf-8") as f:

return json.load(f)

return []

def save_friends(data):

with open(FILE, "w", encoding="utf-8") as f:

json.dump(data, f, ensure_ascii=False, indent=4)

def add_friend(name, birthday, contact, relation):

friends = load_friends()

friends.append({"name": name, "birthday": birthday, "contact": contact, "relation": relation})

save_friends(friends)

def list_friends():

return load_friends()

"blessings.py"

import random

TEMPLATES = {

"死党": [

"兄弟/姐妹,生日快乐!愿你每天都笑得像今天一样灿烂!",

"认识你是我最大的幸运,生日快乐,永远年轻!"

],

"普通朋友": [

"祝你生日快乐,愿你心想事成,幸福满满!",

"愿你的每一天都充满阳光与欢笑,生日快乐!"

],

"同事": [

"祝你生日快乐,工作顺利,生活愉快!",

"愿你在工作和生活中都能收获满满的幸福!"

]

}

def generate_blessing(relation):

return random.choice(TEMPLATES.get(relation, TEMPLATES["普通朋友"]))

"gifts.py"

GIFT_LIST = {

"死党": ["定制相册", "手写信", "旅行体验券"],

"普通朋友": ["书籍", "香薰蜡烛", "保温杯"],

"同事": ["高档笔记本", "桌面绿植", "咖啡礼盒"]

}

def recommend_gift(relation):

return GIFT_LIST.get(relation, GIFT_LIST["普通朋友"])

"reminder.py"

from datetime import datetime, timedelta

def check_upcoming_birthdays(days_before=3):

today = datetime.today()

friends = __import__('friends').load_friends()

for f in friends:

bday = datetime.strptime(f["birthday"], "%Y-%m-%d")

# 今年生日

bday_this_year = bday.replace(year=today.year)

if bday_this_year < today:

bday_this_year = bday_this_year.replace(year=today.year + 1)

days_left = (bday_this_year - today).days

if 0 < days_left <= days_before:

print(f"⏰ 提醒:{f['name']} 的生日还有 {days_left} 天!")

"main.py"

from friends import add_friend, list_friends

from blessings import generate_blessing

from gifts import recommend_gift

from reminder import check_upcoming_birthdays

def main():

while True:

print("\n=== 朋友生日提醒助手 ===")

print("1. 添加朋友生日")

print("2. 查看所有朋友")

print("3. 生成祝福语")

print("4. 推荐礼物")

print("5. 检查近期生日")

print("0. 退出")

choice = input("请选择操作:")

if choice == "1":

name = input("姓名:")

birthday = input("生日(YYYY-MM-DD):")

contact = input("联系方式:")

relation = input("关系(死党/普通朋友/同事):")

add_friend(name, birthday, contact, relation)

print("✅ 添加成功!")

elif choice == "2":

for f in list_friends():

print(f)

elif choice == "3":

name = input("朋友姓名:")

relation = input("关系:")

print("祝福语:", generate_blessing(relation))

elif choice == "4":

relation = input("关系:")

print("礼物推荐:", recommend_gift(relation))

elif choice == "5":

check_upcoming_birthdays()

elif choice == "0":

break

else:

print("无效选择")

if __name__ == "__main__":

main()

5. README.md

# 朋友生日提醒助手

一个帮助您记录朋友生日、生成祝福语、推荐礼物并提前提醒的Python工具。

## 功能

- 录入朋友生日和联系方式

- 自动生成个性化祝福语

- 推荐合适的生日礼物

- 提前提醒生日

## 使用方法

1. 安装 Python 3.x

2. 运行 `python main.py`

3. 按菜单提示操作

## 文件结构

- `main.py` 主程序

- `friends.py` 朋友信息管理

- `blessings.py` 祝福语生成

- `gifts.py` 礼物推荐

- `reminder.py` 提醒功能

6. 核心知识点卡片

知识点 说明

JSON 数据存储 用于持久化朋友信息

随机数选择

"random.choice()" 生成多样化祝福

日期处理

"datetime" 计算距离生日的天数

模块化编程 分文件管理不同功能

用户交互 菜单式命令行界面

7. 总结

这个 朋友生日提醒助手 解决了忘记生日、祝福语单调、礼物选择困难等问题,并且通过模块化设计让代码易于维护和扩展。

如果你愿意,可以在下一步:

- 增加 微信/短信自动发送 功能(调用 API)

- 做成 桌面 GUI 应用(用 Tkinter 或 PyQt)

- 打包成 Windows 可执行文件

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/17 4:54:00

线上教育平台大数据分析_05a8i-爬虫可视化

目录线上教育平台大数据分析与爬虫可视化数据爬取数据存储与处理数据分析数据可视化项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作线上教育平台大数据分析与爬虫可视化 线上教育平台的大数据分析通常涉及…

作者头像 李华
网站建设 2026/2/16 7:35:48

基于大数据的家电之冰箱销售分析系统设计与实现_9ep8e 爬虫可视化大屏

目录摘要概述核心设计内容技术实现亮点应用价值项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作摘要概述 该研究聚焦于基于大数据的冰箱销售分析系统&#xff0c;通过爬虫技术采集市场数据&#xff0c;结合…

作者头像 李华
网站建设 2026/2/17 3:02:17

多芬超级碗广告旨在倡导女孩在体育运动中拥有自信的体态

多芬重返超级碗后已连续第三年推出广告&#xff0c;广告名为《比赛属于我们&#xff08;The Game is Ours&#xff09;》。该广告旨在倡导女孩在体育运动中拥有自信的体态。该广告回应了相关研究&#xff0c;即由于身材受到批评&#xff0c;有一半的女孩在 14 岁时就放弃了体育…

作者头像 李华
网站建设 2026/2/16 9:37:06

基于hadoop的租车网站的数据分析系统的设计与实现_8003i-爬虫可视化

目录Hadoop 在租车网站数据分析中的应用数据爬取与预处理可视化技术实现系统架构设计关键挑战与优化项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作Hadoop 在租车网站数据分析中的应用 Hadoop 作为分布式…

作者头像 李华