news 2026/4/18 6:47:26

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

作者头像

张小明

前端开发工程师

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/4/18 8:31:51

赶deadline必备!万众偏爱的AI论文平台 —— 千笔

你是否曾为论文选题发愁&#xff0c;反复修改却仍不满意&#xff1f;是否在深夜面对空白文档无从下笔&#xff0c;又担心查重率过高&#xff1f;论文写作不仅是学术能力的考验&#xff0c;更是时间与精力的拉锯战。对于研究生而言&#xff0c;每一篇论文都承载着无数个日夜的付…

作者头像 李华
网站建设 2026/4/18 3:31:41

AI产品经理入门指南:小白也能动手实践,告别代码和深度学习的误区

本文针对想转行AI产品经理的小白&#xff0c;澄清了需精通代码和深度学习的误区&#xff0c;介绍了AI产品经理的三类细分岗位&#xff1a;AI平台产品经理、AI Native产品经理和AI产品经理&#xff0c;并分享了从动手做原型入行到聚焦用户痛点、在试错中成长的实战经验。文章强调…

作者头像 李华
网站建设 2026/4/18 3:29:22

IPTV 系统硬件设备有哪些?一文读懂酒店、医院 IPTV 系统架构

在酒店、医院、养老院等场景中&#xff0c;电视早已不只是“看节目”的工具&#xff0c;而是承担着信息发布、服务引导、品牌展示和系统联动的重要角色。因此&#xff0c;越来越多项目开始采用 IPTV 系统&#xff0c;而不是简单的智能电视或传统有线电视方案。那么&#xff0c;…

作者头像 李华