第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()

🎉 第六部分:使用说明和项目总结

📋 使用说明

  1. 运行程序:双击运行,或者用Python打开文件
  2. 创建名片:按照提示输入个人信息
  3. 选择风格:选择喜欢的名片风格
  4. 保存分享:可以保存到文件或截图分享
  5. 创意功能:尝试各种创意模板

🎯 学到的知识

通过这个项目,你综合运用了前9课的所有知识:

| 课程 | 知识点 | 在项目中的应用 |

|------|--------|--------------|

| 第1课 | 环境搭建 | 运行完整程序 |

| 第2课 | print()函数 | 美观输出名片 |

| 第3课 | 变量 | 存储个人信息 |

| 第4课 | 数学运算 | 计算年龄、幸运数字 |

| 第5课 | 字符串处理 | 格式化输出、搜索功能 |

| 第6课 | input() | 交互式输入信息 |

| 第7课 | 计算器 | 计算相关数据 |

| 第8课 | 随机数 | 生成ID、幸运数字 |

| 第9课 | 时间处理 | 记录创建时间 |

💡 可以尝试的改进

如果你想让项目更棒,可以尝试:

  1. 添加更多名片模板
  2. 设计图形界面
  3. 添加打印功能
  4. 制作名片相册
  5. 添加密码保护
  6. 制作手机版本
  7. 添加背景颜色
  8. 制作动画效果

🎓 毕业寄语

亲爱的同学,

恭喜你完成了10节Python课程的学习!🎉

从最简单的print("你好")开始,

到完成这个完整的项目,

你走过了一段了不起的编程旅程!

你学会了

  • 💻 如何让计算机"思考"和"说话"
  • 🎨 如何用代码创造美
  • 🔧 如何解决问题
  • 🎯 如何完成一个项目
  • ✨ 如何用程序表达自己

记住:

  • 每个程序员都从print("Hello World")开始
  • 错误是最好的老师
  • 编程是解决问题的工具
  • 创造力比记忆力更重要
  • 保持好奇,持续学习

用代码创造美好,

用程序改变世界,

你,就是未来的创造者!🌟

恭喜毕业!你是最棒的小程序员! 🎉


第10课圆满结束!期待在进阶课程中与你再次相见! 🎉