第10课:阶段项目-个性化名片生成器
🎯 本课目标
- 综合运用前9课知识制作个性化名片
- 学习如何设计美观的输出界面
- 实现名片信息保存功能
- 制作多种风格的名片模板
- 完成第一个完整的Python项目
🎉 项目介绍:创造你的专属名片
想象一下:你有一张神奇的名片,它不仅能展示你的信息,还能:
- 🎨 自动设计成你喜欢的风格
- 🎯 添加个人特色和兴趣
- 💫 生成唯一的名片编号
- ⏰ 记录制作时间
- 💾 保存到电脑里随时查看
- 🎁 打印出来送给朋友
今天,我们要制作的就是这样一个个性化名片生成器!
🎨 第一部分:基础名片生成
项目1.0:简单名片生成器
# 简单名片生成器
print("🎫" * 10)
print(" 简单名片生成器")
print("🎫" * 10)
# 收集基本信息
print("\n📝 请填写个人信息:")
print("=" * 30)
name = input("姓名:")
age = input("年龄:")
school = input("学校:")
class_name = input("班级:")
phone = input("电话(可选):")
hobby = input("爱好:")
# 生成名片
print("\n" + "=" * 40)
print(" 📇 个人名片")
print("=" * 40)
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"学校:{school}")
print(f"班级:{class_name}")
if phone:
print(f"电话:{phone}")
print(f"爱好:{hobby}")
print("=" * 40)
print("✨ 名片生成完成!")
🎪 第二部分:智能名片生成系统
项目2.0:智能名片生成器
# 智能名片生成器
import datetime
import random
print("🎫" * 15)
print(" 智能名片生成系统 v2.0")
print("🎫" * 15)
def get_personal_info():
"""收集个人信息"""
print("\n📝 请填写个人信息:")
print("-" * 30)
info = {}
info['name'] = input("姓名:")
info['nickname'] = input("昵称(小名):")
# 年龄
while True:
try:
age = int(input("年龄:"))
if 1 <= age <= 20:
info['age'] = age
break
else:
print("⚠️ 请输入1-20之间的年龄")
except:
print("❌ 请输入数字!")
# 联系信息
info['school'] = input("学校:")
info['class'] = input("班级:")
info['phone'] = input("电话(可选):")
info['email'] = input("邮箱(可选):")
# 个人描述
info['hobby'] = input("爱好(比如:编程、画画):")
info['favorite_subject'] = input("最喜欢的科目:")
info['dream'] = input("你的梦想:")
return info
def generate_card_id():
"""生成名片ID"""
# 用日期和时间生成唯一ID
now = datetime.datetime.now()
date_str = now.strftime("%m%d")
random_num = random.randint(100, 999)
return f"CARD-{date_str}-{random_num}"
def create_simple_card(info):
"""创建简单风格名片"""
card_id = generate_card_id()
create_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
print("\n" + "=" * 50)
print(" 📇 个人名片 - 简洁版")
print("=" * 50)
print(f"名片ID:{card_id}")
print(f"制作时间:{create_time}")
print()
print(f"👤 姓名:{info['name']}")
if info['nickname']:
print(f"🏷️ 昵称:{info['nickname']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 学校:{info['school']}")
print(f"📚 班级:{info['class']}")
if info['phone']:
print(f"📱 电话:{info['phone']}")
if info['email']:
print(f"📧 邮箱:{info['email']}")
print(f"🎯 爱好:{info['hobby']}")
print(f"📖 最喜欢科目:{info['favorite_subject']}")
print(f"✨ 梦想:{info['dream']}")
print("=" * 50)
return {'id': card_id, 'info': info, 'time': create_time}
def create_fancy_card(info):
"""创建花式风格名片"""
card_id = generate_card_id()
create_time = datetime.datetime.now().strftime("%Y-%m-%d")
print("\n" + "★" * 20)
print(f" ✨ {info['name']}的名片 ✨")
print("★" * 20)
print(f"\n👤 关于我:")
print(f" 🎂 {info['age']}岁")
print(f" 🎯 喜欢{info['hobby']}")
print(f" 📖 最爱{info['favorite_subject']}")
print(f"\n🏫 在学校:")
print(f" 📍 {info['school']}")
print(f" 🪑 {info['class']}")
if info['nickname']:
print(f"\n💡 小秘密:")
print(f" 朋友都叫我{info['nickname']}")
print(f"\n💭 我的梦想:")
print(f" ✨ {info['dream']}")
print(f"\n📅 制作时间:{create_time}")
print(f"🆔 编号:{card_id}")
print("\n" + "❤️" * 10)
return {'id': card_id, 'info': info, 'time': create_time}
def create_student_card(info):
"""创建学生风格名片"""
card_id = generate_card_id()
print("\n" + "📘" * 10)
print(" 🎒 学生名片 🎒")
print("📘" * 10)
# 计算幸运数字
lucky_numbers = [random.randint(1, 20) for _ in range(3)]
print(f"\n学生姓名:{info['name']}")
print(f"学生年龄:{info['age']}岁")
print(f"所在学校:{info['school']}")
print(f"所在班级:{info['class']}")
print(f"\n📊 学生信息:")
print(f" 爱好特长:{info['hobby']}")
print(f" 擅长科目:{info['favorite_subject']}")
print(f" 未来梦想:{info['dream']}")
print(f"\n🎲 幸运数字:{lucky_numbers[0]}, {lucky_numbers[1]}, {lucky_numbers[2]}")
print(f"\n🆔 名片编号:{card_id}")
print("📅 " + datetime.datetime.now().strftime("%Y年%m月%d日"))
return {'id': card_id, 'info': info, 'lucky_numbers': lucky_numbers}
def save_card_to_file(card, style):
"""保存名片到文件"""
info = card['info']
filename = f"{info['name']}_{style}_名片.txt"
try:
with open(filename, 'w', encoding='utf-8') as f:
f.write("=" * 50 + "\n")
f.write(" 个人名片文件\n")
f.write("=" * 50 + "\n\n")
f.write(f"名片ID:{card.get('id', '未知')}\n")
f.write(f"制作时间:{card.get('time', datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))}\n")
f.write(f"名片风格:{style}\n\n")
f.write("【基本信息】\n")
f.write(f"姓名:{info['name']}\n")
if info.get('nickname'):
f.write(f"昵称:{info['nickname']}\n")
f.write(f"年龄:{info['age']}岁\n")
f.write(f"学校:{info['school']}\n")
f.write(f"班级:{info['class']}\n\n")
f.write("【联系信息】\n")
if info.get('phone'):
f.write(f"电话:{info['phone']}\n")
if info.get('email'):
f.write(f"邮箱:{info['email']}\n\n")
f.write("【个人描述】\n")
f.write(f"爱好:{info['hobby']}\n")
f.write(f"最喜欢科目:{info['favorite_subject']}\n")
f.write(f"梦想:{info['dream']}\n")
if 'lucky_numbers' in card:
f.write(f"\n幸运数字:{card['lucky_numbers']}\n")
f.write("\n" + "=" * 50 + "\n")
print(f"✅ 名片已保存到:{filename}")
return True
except:
print("❌ 保存失败,但别担心,可以截图保存!")
return False
def main():
"""主程序"""
print("\n欢迎使用智能名片生成系统!")
# 先收集信息
info = get_personal_info()
while True:
print("\n" + "=" * 30)
print("请选择名片风格:")
print("1. 🎨 简洁风格")
print("2. ✨ 花式风格")
print("3. 🎒 学生风格")
print("4. 🔄 重新填写信息")
print("5. 🚪 退出系统")
print("=" * 30)
choice = input("\n你的选择(1-5):")
if choice == "1":
# 简洁风格
card = create_simple_card(info)
save = input("\n是否保存到文件?(是/否):")
if save.lower() == "是":
save_card_to_file(card, "简洁风格")
elif choice == "2":
# 花式风格
card = create_fancy_card(info)
save = input("\n是否保存到文件?(是/否):")
if save.lower() == "是":
save_card_to_file(card, "花式风格")
elif choice == "3":
# 学生风格
card = create_student_card(info)
save = input("\n是否保存到文件?(是/否):")
if save.lower() == "是":
save_card_to_file(card, "学生风格")
elif choice == "4":
# 重新填写信息
print("\n重新填写信息:")
info = get_personal_info()
elif choice == "5":
# 退出
print("\n🎉 感谢使用名片生成系统!")
print("再见!👋")
break
else:
print("❌ 请选择1-5的数字!")
input("\n按回车键继续...")
# 运行程序
if __name__ == "__main__":
main()
🎮 第三部分:创意名片模板
模板1:超级英雄名片
def create_superhero_card(info):
"""创建超级英雄名片"""
import random
# 生成超级英雄名字
first_names = ["闪电", "钢铁", "神奇", "无敌", "快乐", "智慧"]
last_names = ["侠", "超人", "队长", "战士", "英雄", "使者"]
hero_name = random.choice(first_names) + random.choice(last_names)
# 生成超能力
powers = [
"能飞", "力大无穷", "跑得飞快",
"会隐形", "能控制水", "能发射激光",
"能读懂别人心思", "能变成动物"
]
power = random.choice(powers)
# 生成口号
slogans = [
"正义必胜!", "保护世界和平!",
"帮助需要帮助的人!", "用超能力做好事!",
"我是小小超级英雄!", "让世界更美好!"
]
slogan = random.choice(slogans)
print("\n" + "🦸" * 10)
print(f" 🌟 超级英雄名片 🌟")
print("🦸" * 10)
print(f"\n🏷️ 真实身份:{info['name']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 隐藏身份:{info['school']}学生")
print(f"\n💥 英雄信息:")
print(f" 英雄代号:{hero_name}")
print(f" 超能力:{power}")
print(f" 英雄口号:{slogan}")
print(f"\n🎯 日常身份:")
print(f" 爱好:{info['hobby']}")
print(f" 梦想:{info['dream']}")
print(f"\n⚡ 任务:用超能力帮助他人!")
print("❤️ 记住:能力越大,责任越大!")
return {'hero_name': hero_name, 'power': power, 'slogan': slogan}
模板2:未来梦想名片
def create_future_dream_card(info):
"""创建未来梦想名片"""
import random
# 未来的职业
future_jobs = {
"程序员": ["编写游戏", "开发APP", "制作网站"],
"科学家": ["发明新东西", "探索宇宙", "研究动物"],
"医生": ["帮助病人", "研究新药", "做手术"],
"老师": ["教小朋友", "编写教材", "做实验"],
"艺术家": ["画画", "设计建筑", "创作音乐"],
"运动员": ["参加比赛", "训练新人", "打破纪录"]
}
# 根据梦想选择合适的职业
dream = info['dream']
job = "梦想家" # 默认
for key in future_jobs:
if key in dream:
job = key
break
if job not in future_jobs:
job = random.choice(list(future_jobs.keys()))
work = random.choice(future_jobs[job])
print("\n" + "🚀" * 10)
print(" 🌈 未来梦想名片 🌈")
print("🚀" * 10)
print(f"\n👤 现在:{info['name']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 学校:{info['school']}")
print(f"\n🌟 未来梦想:")
print(f" 职业:{job}")
print(f" 工作:{work}")
print(f" 时间:2035年")
print(f"\n🎯 为梦想准备:")
print(f" 现在爱好:{info['hobby']}")
print(f" 擅长科目:{info['favorite_subject']}")
print(f"\n💪 行动计划:")
print(f" 1. 学好{info['favorite_subject']}")
print(f" 2. 坚持{info['hobby']}")
print(f" 3. 每天进步一点点")
print(f"\n✨ 梦想寄语:")
print(f" {info['dream']}一定会实现!")
return {'future_job': job, 'future_work': work}
模板3:班级职务名片
def create_class_position_card(info):
"""创建班级职务名片"""
import random
# 班级职务
positions = [
("班长", "管理班级事务", "👑"),
("学习委员", "帮助同学学习", "📚"),
("体育委员", "组织体育活动", "⚽"),
("文艺委员", "组织文艺活动", "🎨"),
("卫生委员", "检查班级卫生", "🧹"),
("小组长", "带领小组学习", "👥")
]
# 随机分配一个职务
position, duty, emoji = random.choice(positions)
# 生成职务宣言
declarations = [
"全心全意为同学服务!",
"认真负责做好每件事!",
"做老师的好帮手!",
"做同学们的好朋友!",
"让班级更美好!"
]
declaration = random.choice(declarations)
print("\n" + "🎓" * 10)
print(f" 🏫 班级职务名片 🏫")
print("🎓" * 10)
print(f"\n{emoji} 职务信息:")
print(f" 姓名:{info['name']}")
print(f" 班级:{info['class']}")
print(f" 学校:{info['school']}")
print(f" 职务:{position}")
print(f"\n📋 工作职责:")
print(f" {duty}")
print(f"\n🎯 个人优势:")
print(f" 爱好:{info['hobby']}")
print(f" 特长:{info['favorite_subject']}")
print(f"\n💬 就职宣言:")
print(f" {declaration}")
print(f"\n✨ 未来计划:")
print(f" {info['dream']}")
return {'position': position, 'duty': duty, 'declaration': declaration}
🎯 第四部分:名片管理系统
完整名片管理系统
# 完整名片管理系统
import datetime
import random
import os
class BusinessCardSystem:
"""名片管理系统"""
def __init__(self):
self.cards = [] # 存储所有名片
self.current_card = None
def clear_screen(self):
"""清屏"""
os.system('cls' if os.name == 'nt' else 'clear')
def show_welcome(self):
"""显示欢迎界面"""
self.clear_screen()
print("🎫" * 20)
print(" 个性化名片生成器")
print(" 第10课阶段项目")
print("🎫" * 20)
print("\n欢迎使用名片生成系统!")
print("我可以帮你制作漂亮的名片!")
def show_main_menu(self):
"""显示主菜单"""
print("\n" + "=" * 40)
print("请选择功能:")
print("1. 🆕 创建新名片")
print("2. 📁 查看所有名片")
print("3. 🔍 搜索名片")
print("4. 💾 保存名片")
print("5. 🎮 创意名片模板")
print("6. 🆓 自由设计")
print("7. 🎉 毕业作品")
print("8. 🚪 退出系统")
print("=" * 40)
def get_personal_info(self):
"""收集个人信息"""
print("\n📝 请填写个人信息:")
print("-" * 30)
info = {}
info['name'] = input("姓名:")
info['nickname'] = input("昵称(小名):")
# 年龄
while True:
try:
age = int(input("年龄:"))
if 1 <= age <= 20:
info['age'] = age
break
else:
print("⚠️ 请输入1-20之间的年龄")
except:
print("❌ 请输入数字!")
# 联系信息
info['school'] = input("学校:")
info['class'] = input("班级:")
info['phone'] = input("电话(可选):")
info['email'] = input("邮箱(可选):")
# 个人描述
info['hobby'] = input("爱好(比如:编程、画画):")
info['favorite_color'] = input("最喜欢的颜色:")
info['favorite_food'] = input("最喜欢的食物:")
info['favorite_subject'] = input("最喜欢的科目:")
info['dream'] = input("你的梦想:")
return info
def generate_card_id(self):
"""生成名片ID"""
now = datetime.datetime.now()
date_str = now.strftime("%m%d")
random_num = random.randint(100, 999)
return f"CARD-{date_str}-{random_num}"
def create_card(self, info, style="simple"):
"""创建名片"""
card_id = self.generate_card_id()
create_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
card = {
'id': card_id,
'info': info,
'style': style,
'time': create_time
}
self.cards.append(card)
self.current_card = card
return card
def display_card_simple(self, card):
"""显示简洁名片"""
info = card['info']
print("\n" + "=" * 50)
print(" 📇 个人名片")
print("=" * 50)
print(f"名片ID:{card['id']}")
print(f"制作时间:{card['time']}")
print()
print(f"👤 姓名:{info['name']}")
if info['nickname']:
print(f"🏷️ 昵称:{info['nickname']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 学校:{info['school']}")
print(f"📚 班级:{info['class']}")
if info['phone']:
print(f"📱 电话:{info['phone']}")
if info['email']:
print(f"📧 邮箱:{info['email']}")
print(f"🎯 爱好:{info['hobby']}")
print(f"🎨 喜欢颜色:{info['favorite_color']}")
print(f"🍎 喜欢食物:{info['favorite_food']}")
print(f"📖 喜欢科目:{info['favorite_subject']}")
print(f"✨ 梦想:{info['dream']}")
print("=" * 50)
def display_card_fancy(self, card):
"""显示花式名片"""
info = card['info']
print("\n" + "★" * 20)
print(f" ✨ {info['name']}的名片 ✨")
print("★" * 20)
print(f"\n👤 关于我:")
print(f" 🎂 {info['age']}岁")
print(f" 🎯 喜欢{info['hobby']}")
print(f" 🎨 最爱{info['favorite_color']}")
print(f"\n🏫 在学校:")
print(f" 📍 {info['school']}")
print(f" 🪑 {info['class']}")
print(f"\n💡 小秘密:")
print(f" 最爱吃{info['favorite_food']}")
print(f" 最喜欢{info['favorite_subject']}课")
if info['nickname']:
print(f" 朋友都叫我{info['nickname']}")
print(f"\n💭 我的梦想:")
print(f" ✨ {info['dream']}")
print(f"\n🆔 名片编号:{card['id']}")
print("❤️" * 10)
def display_card_student(self, card):
"""显示学生名片"""
info = card['info']
# 计算幸运数字
lucky_numbers = [random.randint(1, 20) for _ in range(3)]
print("\n" + "🎒" * 10)
print(" 📘 学生名片 📘")
print("🎒" * 10)
print(f"\n学生姓名:{info['name']}")
print(f"学生年龄:{info['age']}岁")
print(f"所在学校:{info['school']}")
print(f"所在班级:{info['class']}")
print(f"\n📊 学生信息:")
print(f" 爱好:{info['hobby']}")
print(f" 喜欢颜色:{info['favorite_color']}")
print(f" 喜欢食物:{info['favorite_food']}")
print(f" 擅长科目:{info['favorite_subject']}")
print(f" 未来梦想:{info['dream']}")
print(f"\n🎲 今日幸运数字:")
print(f" {lucky_numbers[0]}, {lucky_numbers[1]}, {lucky_numbers[2]}")
print(f"\n🆔 名片编号:{card['id']}")
print("📅 " + datetime.datetime.now().strftime("%Y年%m月%d日"))
card['lucky_numbers'] = lucky_numbers
def save_card_to_file(self, card):
"""保存名片到文件"""
if not card:
print("❌ 没有可保存的名片")
return False
info = card['info']
filename = f"{info['name']}_名片.txt"
try:
with open(filename, 'w', encoding='utf-8') as f:
f.write("=" * 50 + "\n")
f.write(" 个人名片文件\n")
f.write("=" * 50 + "\n\n")
f.write(f"名片ID:{card['id']}\n")
f.write(f"制作时间:{card['time']}\n")
f.write(f"名片风格:{card.get('style', '标准')}\n\n")
f.write("【基本信息】\n")
f.write(f"姓名:{info['name']}\n")
if info.get('nickname'):
f.write(f"昵称:{info['nickname']}\n")
f.write(f"年龄:{info['age']}岁\n")
f.write(f"学校:{info['school']}\n")
f.write(f"班级:{info['class']}\n\n")
f.write("【联系信息】\n")
if info.get('phone'):
f.write(f"电话:{info['phone']}\n")
if info.get('email'):
f.write(f"邮箱:{info['email']}\n\n")
f.write("【个人描述】\n")
f.write(f"爱好:{info['hobby']}\n")
f.write(f"喜欢颜色:{info['favorite_color']}\n")
f.write(f"喜欢食物:{info['favorite_food']}\n")
f.write(f"喜欢科目:{info['favorite_subject']}\n")
f.write(f"梦想:{info['dream']}\n")
if 'lucky_numbers' in card:
f.write(f"\n幸运数字:{card['lucky_numbers']}\n")
f.write("\n" + "=" * 50 + "\n")
print(f"✅ 名片已保存到:{filename}")
return True
except Exception as e:
print(f"❌ 保存失败:{e}")
return False
def view_all_cards(self):
"""查看所有名片"""
if not self.cards:
print("\n📭 还没有创建任何名片")
return
print(f"\n📁 共有 {len(self.cards)} 张名片:")
print("-" * 40)
for i, card in enumerate(self.cards, 1):
info = card['info']
print(f"{i}. {info['name']} - {card['id']} - {card.get('style', '标准')}")
# 选择查看详情
print("\n输入编号查看详情,0返回")
try:
choice = int(input("选择:"))
if 1 <= choice <= len(self.cards):
selected_card = self.cards[choice-1]
self.current_card = selected_card
# 根据风格显示
style = selected_card.get('style', 'simple')
if style == 'fancy':
self.display_card_fancy(selected_card)
elif style == 'student':
self.display_card_student(selected_card)
else:
self.display_card_simple(selected_card)
except:
pass
def search_cards(self):
"""搜索名片"""
if not self.cards:
print("\n📭 还没有创建任何名片")
return
keyword = input("\n🔍 输入搜索关键词:").lower()
results = []
for card in self.cards:
info = card['info']
# 搜索姓名、学校、班级、爱好
search_text = f"{info['name']} {info['school']} {info['class']} {info['hobby']} {info['dream']}".lower()
if keyword in search_text:
results.append(card)
if results:
print(f"\n✅ 找到 {len(results)} 张名片:")
for i, card in enumerate(results, 1):
info = card['info']
print(f"{i}. {info['name']} - {info['school']} - {info['hobby']}")
else:
print("\n❌ 没有找到匹配的名片")
def creative_templates(self):
"""创意名片模板"""
if not self.current_card:
print("\n❌ 请先创建一张名片")
return
print("\n🎨 创意名片模板")
print("=" * 30)
print("1. 🦸 超级英雄名片")
print("2. 🚀 未来梦想名片")
print("3. 🎓 班级职务名片")
print("4. 🎮 游戏玩家名片")
print("5. 🔙 返回")
choice = input("\n选择模板:")
if choice == "1":
self.create_superhero_template()
elif choice == "2":
self.create_future_dream_template()
elif choice == "3":
self.create_class_position_template()
elif choice == "4":
self.create_gamer_template()
def create_superhero_template(self):
"""超级英雄名片模板"""
info = self.current_card['info']
# 生成超级英雄名字
first_names = ["闪电", "钢铁", "神奇", "无敌", "快乐", "智慧"]
last_names = ["侠", "超人", "队长", "战士", "英雄", "使者"]
hero_name = random.choice(first_names) + random.choice(last_names)
# 生成超能力
powers = ["能飞", "力大无穷", "跑得飞快", "会隐形", "能控制水", "能发射激光"]
power = random.choice(powers)
print("\n" + "🦸" * 10)
print(f" 🌟 超级英雄名片 🌟")
print("🦸" * 10)
print(f"\n🏷️ 真实身份:{info['name']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 隐藏身份:{info['school']}学生")
print(f"\n💥 英雄信息:")
print(f" 英雄代号:{hero_name}")
print(f" 超能力:{power}")
print(f"\n🎯 日常身份:")
print(f" 爱好:{info['hobby']}")
print(f" 梦想:{info['dream']}")
print(f"\n⚡ 英雄使命:用超能力帮助他人!")
# 保存到当前名片
self.current_card['hero_info'] = {
'hero_name': hero_name,
'power': power
}
def create_future_dream_template(self):
"""未来梦想名片模板"""
info = self.current_card['info']
# 未来的年份
future_year = 2030 + random.randint(5, 15)
# 未来的职业
jobs = ["程序员", "科学家", "医生", "老师", "艺术家", "运动员", "宇航员"]
job = random.choice(jobs)
print("\n" + "🚀" * 10)
print(" 🌈 未来梦想名片 🌈")
print("🚀" * 10)
print(f"\n👤 现在:{info['name']}")
print(f"🎂 现在年龄:{info['age']}岁")
print(f"\n🌟 未来{job}:")
print(f" 未来年龄:{future_year - datetime.datetime.now().year + info['age']}岁")
print(f" 未来年份:{future_year}年")
print(f"\n🎯 为梦想准备:")
print(f" 现在爱好:{info['hobby']}")
print(f" 现在喜欢科目:{info['favorite_subject']}")
print(f"\n✨ 梦想寄语:")
print(f" {info['dream']}一定会实现!")
def create_class_position_template(self):
"""班级职务名片模板"""
info = self.current_card['info']
# 班级职务
positions = [
("班长", "👑", "管理班级"),
("学习委员", "📚", "帮助学习"),
("体育委员", "⚽", "组织体育"),
("文艺委员", "🎨", "组织文艺"),
("卫生委员", "🧹", "检查卫生")
]
position, emoji, duty = random.choice(positions)
print("\n" + "🎓" * 10)
print(f" 🏫 班级职务名片 🏫")
print("🎓" * 10)
print(f"\n{emoji} 职务信息:")
print(f" 姓名:{info['name']}")
print(f" 班级:{info['class']}")
print(f" 学校:{info['school']}")
print(f" 职务:{position}")
print(f"\n📋 工作职责:")
print(f" {duty}")
print(f"\n🎯 个人优势:")
print(f" 爱好:{info['hobby']}")
print(f" 特长:{info['favorite_subject']}")
def create_gamer_template(self):
"""游戏玩家名片模板"""
info = self.current_card['info']
# 游戏等级
levels = ["青铜", "白银", "黄金", "铂金", "钻石", "大师", "王者"]
level = random.choice(levels)
# 游戏成就
achievements = [
"完成100个任务",
"获得50次胜利",
"帮助100个队友",
"解锁所有技能",
"达到最高等级"
]
achievement = random.choice(achievements)
print("\n" + "🎮" * 10)
print(" 🎲 游戏玩家名片 🎲")
print("🎮" * 10)
print(f"\n👤 玩家信息:")
print(f" 游戏ID:{info['name']}")
print(f" 等级:{level}")
print(f"\n🏆 游戏成就:")
print(f" {achievement}")
print(f" 最擅长:{info['hobby']}")
print(f"\n💡 现实身份:")
print(f" 学校:{info['school']}")
print(f" 班级:{info['class']}")
print(f" 年龄:{info['age']}岁")
print(f"\n🎯 游戏准则:")
print(" 适度游戏益脑,沉迷游戏伤身")
print(" 合理安排时间,享受健康生活")
def free_design(self):
"""自由设计名片"""
print("\n🎨 自由设计名片")
print("=" * 30)
print("你可以自由设计名片的各个部分!")
if not self.current_card:
print("❌ 请先创建一张名片")
return
info = self.current_card['info']
# 让用户选择设计
print("\n请选择要设计的部分:")
print("1. 修改边框样式")
print("2. 添加个性签名")
print("3. 添加今日心情")
print("4. 添加座右铭")
print("5. 显示设计结果")
choice = input("\n选择:")
if choice == "1":
borders = ["=", "*", "-", "#", "~", "❤️", "✨"]
print(f"\n可选边框:{borders}")
border = input("选择边框符号:")
if border:
info['custom_border'] = border
elif choice == "2":
signature = input("\n输入你的个性签名:")
if signature:
info['signature'] = signature
elif choice == "3":
moods = ["开心", "兴奋", "平静", "思考", "专注", "创意"]
print(f"\n今日心情:{moods}")
mood = input("选择或输入你的心情:")
if mood:
info['mood'] = mood
elif choice == "4":
motto = input("\n输入你的座右铭:")
if motto:
info['motto'] = motto
elif choice == "5":
self.display_custom_card()
def display_custom_card(self):
"""显示自定义名片"""
if not self.current_card:
return
info = self.current_card['info']
border = info.get('custom_border', '=')
print("\n" + border * 50)
print(" 🎨 自定义名片")
print(border * 50)
print(f"\n👤 姓名:{info['name']}")
print(f"🎂 年龄:{info['age']}岁")
print(f"🏫 学校:{info['school']}")
if 'mood' in info:
print(f"😊 今日心情:{info['mood']}")
if 'signature' in info:
print(f"✍️ 个性签名:{info['signature']}")
if 'motto' in info:
print(f"💡 座右铭:{info['motto']}")
print(f"\n🎯 爱好:{info['hobby']}")
print(f"✨ 梦想:{info['dream']}")
print(border * 50)
def graduation_project(self):
"""毕业作品展示"""
print("\n🎉 毕业作品展示")
print("=" * 30)
print("\n恭喜完成第10课学习!")
print("你已经是小小程序员了!")
if self.current_card:
print(f"\n✨ 展示你的名片作品:")
self.display_card_fancy(self.current_card)
# 生成毕业证书
print("\n" + "🎓" * 20)
print(" 毕业证书")
print("🎓" * 20)
print()
print(" 荣誉证书")
print()
if self.current_card:
print(f"授予:{self.current_card['info']['name']}")
else:
print("授予:优秀学员")
print()
print("在Python编程入门课程中")
print("完成了10节课的学习")
print("成功制作了个性化名片生成器")
print("特发此证,以资鼓励")
print()
print(f"毕业时间:{datetime.datetime.now().strftime('%Y年%m月%d日')}")
print("🎓" * 20)
def run(self):
"""运行系统"""
self.show_welcome()
while True:
self.show_main_menu()
choice = input("\n请选择功能(1-8):")
if choice == "1":
# 创建新名片
info = self.get_personal_info()
print("\n请选择名片风格:")
print("1. 简洁风格")
print("2. 花式风格")
print("3. 学生风格")
style_choice = input("选择风格:")
if style_choice == "1":
style = "simple"
elif style_choice == "2":
style = "fancy"
elif style_choice == "3":
style = "student"
else:
style = "simple"
self.create_card(info, style)
self.current_card = self.cards[-1]
# 显示名片
if style == "fancy":
self.display_card_fancy(self.current_card)
elif style == "student":
self.display_card_student(self.current_card)
else:
self.display_card_simple(self.current_card)
input("\n按回车键继续...")
elif choice == "2":
# 查看所有名片
self.view_all_cards()
input("\n按回车键继续...")
elif choice == "3":
# 搜索名片
self.search_cards()
input("\n按回车键继续...")
elif choice == "4":
# 保存名片
if self.current_card:
self.save_card_to_file(self.current_card)
else:
print("❌ 没有可保存的名片")
input("\n按回车键继续...")
elif choice == "5":
# 创意模板
self.creative_templates()
input("\n按回车键继续...")
elif choice == "6":
# 自由设计
self.free_design()
input("\n按回车键继续...")
elif choice == "7":
# 毕业作品
self.graduation_project()
input("\n按回车键继续...")
elif choice == "8":
# 退出
print(f"\n🎉 感谢使用!共创建了 {len(self.cards)} 张名片")
print("再见!👋")
break
else:
print("❌ 请选择1-8的数字!")
input("\n按回车键继续...")
# 运行系统
system = BusinessCardSystem()
system.run()
🎉 第六部分:使用说明和项目总结
📋 使用说明
- 运行程序:双击运行,或者用Python打开文件
- 创建名片:按照提示输入个人信息
- 选择风格:选择喜欢的名片风格
- 保存分享:可以保存到文件或截图分享
- 创意功能:尝试各种创意模板
🎯 学到的知识
通过这个项目,你综合运用了前9课的所有知识:
| 课程 | 知识点 | 在项目中的应用 |
|------|--------|--------------|
| 第1课 | 环境搭建 | 运行完整程序 |
| 第2课 | print()函数 | 美观输出名片 |
| 第3课 | 变量 | 存储个人信息 |
| 第4课 | 数学运算 | 计算年龄、幸运数字 |
| 第5课 | 字符串处理 | 格式化输出、搜索功能 |
| 第6课 | input() | 交互式输入信息 |
| 第7课 | 计算器 | 计算相关数据 |
| 第8课 | 随机数 | 生成ID、幸运数字 |
| 第9课 | 时间处理 | 记录创建时间 |
💡 可以尝试的改进
如果你想让项目更棒,可以尝试:
- 添加更多名片模板
- 设计图形界面
- 添加打印功能
- 制作名片相册
- 添加密码保护
- 制作手机版本
- 添加背景颜色
- 制作动画效果
🎓 毕业寄语
亲爱的同学,
恭喜你完成了10节Python课程的学习!🎉
从最简单的print("你好")开始,
到完成这个完整的项目,
你走过了一段了不起的编程旅程!
你学会了:
- 💻 如何让计算机"思考"和"说话"
- 🎨 如何用代码创造美
- 🔧 如何解决问题
- 🎯 如何完成一个项目
- ✨ 如何用程序表达自己
记住:
- 每个程序员都从
print("Hello World")开始 - 错误是最好的老师
- 编程是解决问题的工具
- 创造力比记忆力更重要
- 保持好奇,持续学习
用代码创造美好,
用程序改变世界,
你,就是未来的创造者!🌟
恭喜毕业!你是最棒的小程序员! 🎉
第10课圆满结束!期待在进阶课程中与你再次相见! 🎉