news 2026/9/17 3:48:29

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

作者头像

张小明

前端开发工程师

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/9/13 7:31:17

闭眼入!千笔·专业学术智能体,碾压级的AI论文工具

你是否曾在论文写作中感到力不从心&#xff1f;选题无头绪、框架不清晰、文献检索繁琐、查重率高得让人焦虑&#xff0c;甚至格式都频频出错。这些困扰&#xff0c;是否让你在深夜里辗转反侧&#xff1f;对于MBA学生而言&#xff0c;学术写作不仅是能力的考验&#xff0c;更是时…

作者头像 李华
网站建设 2026/9/14 19:37:24

2026年转行网络安全:薪资详解+工作安排+前景分析(新手必看)

2026年转行网络安全&#xff1a;薪资详解工作安排前景分析&#xff08;新手必看&#xff09; 2026年&#xff0c;数字化转型进入深水区&#xff0c;网络威胁呈现复杂化、智能化特征&#xff0c;APT攻击、数据泄露等安全事件频发&#xff0c;叠加《网络安全法》《数据安全法》的…

作者头像 李华
网站建设 2026/9/12 5:35:47

TencentOS Server 产品简介

TencentOS Server 是腾讯云针对云的场景研发的 Linux 操作系统&#xff0c;提供特定的功能及性能优化&#xff0c;为云服务器实例中的应用程序提供更高的性能及更加安全可靠的运行环境。TencentOS Server 基于 Linux 内核自主研发设计&#xff0c;积累了腾讯在操作系统领域超过…

作者头像 李华
网站建设 2026/9/9 21:18:37

导师又让重写?8个降AI率网站深度测评与推荐

在如今的学术写作中&#xff0c;AI 工具已经成为许多学生完成论文的重要助手。然而&#xff0c;随着高校对 AIGC&#xff08;人工智能生成内容&#xff09;检测技术的不断升级&#xff0c;单纯依赖 AI 写作可能带来高查重率和明显的 AI 痕迹问题&#xff0c;导致论文被判定为“…

作者头像 李华
网站建设 2026/9/9 21:18:53

【安全】Web渗透测试(全流程)_渗透测试学习流程图

1 信息收集 1.1 域名、IP、端口 域名信息查询&#xff1a;信息可用于后续渗透 IP信息查询&#xff1a;确认域名对应IP&#xff0c;确认IP是否真实&#xff0c;确认通信是否正常 端口信息查询&#xff1a;NMap扫描&#xff0c;确认开放端口 发现&#xff1a;一共开放两个端口&…

作者头像 李华