微项目:名片管理系统

  名片管理系统是一个检验Python初学者入门的实战小项目,它覆盖了Python程序设计的一些基础知识,其中包括有模块、输入/输出、while语句、if…elif…else语句、for循环语句、占位符/制表符、列表和字典等知识点。

功能描述

1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单,如下:

 微项目:名片管理系统

2. 用户选择不同数字进入与数字对应的功能

3. 根据功能选择,执行不同的功能

4. 名片需要记录用户的姓名、电话、QQ、邮件

5. 查询指定的名片,用户可以修改和删除名片

 问题分析

      准备两个文件,一个是cards_main.py保存主程序功能代码,它是程序的入口,另一个是cards_tools.py保存所有名片功能函数,对名片进行新增、显示、查询、修改、删除等功能操作。

主程序:cards_main.py

from card_manage_system import cards_tools
while True:
    cards_tools.show_menu()
    action = input("请输入操作功能:")
    print("你输入的操作是:%s"%action)
    if action in ["1","2","3"]:
        if action == "1":
            cards_tools.new_card()
        elif action == "2":
            cards_tools.show_all()
        elif action == "3":
            cards_tools.search_card()
    elif action == "0":
        print("退出系统,欢迎下次使用名片管理系统")
        break
    else:
        print("输入错误,请重新输入")

名片功能函数:cards_tools.py

  此模块包含show_menu()、new_card()、show_all()、search_card()、deal_card()、input_card_info()等六个不同的功能函数。以下是源代码:

card_list = []
 
def show_menu():
    '''显示菜单'''
    print("*"*60)
    print("欢迎使用【名片管理系统】V1.0")
    print("1. 新建名片")
    print("2. 显示全部")
    print("3. 查询名片")
    print("0. 退出系统")
    print("*"*60)
 
def new_card():
    '''新建名片'''
    # 1.提示用户输入名片信息
    name = input("请输入你的姓名:")
    number = int(input("请输入你的手机号码:"))
    QQnumber = int(input("请输入你的QQ号码:"))
    email = input("请输入你的邮箱;")
    # 2.使用用户输入的信息建立一个名片字典
    card_dict = {"name":name,"phonenumber":number,"QQnumber":QQnumber,"email":email}
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    # 4.提示用户名片添加成功
    print("添加%s的名片成功"%name)
 
def show_all():
    '''显示全部名片 '''
    print('*'*60)
    print('显示所有名片')
    # 判断列表中是否存在名片,如果没有,提示用户并返回
    if len(card_list) == 0:
        print("名片系统中没有名片")
        return
    # 打印表头
    print("姓名\t\t手机号码\t\tQQ号码\t\t邮箱")
    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                        card_dict["phonenumber"],
                                        card_dict["QQnumber"],
                                        card_dict["email"]))
 
def search_card():
    '''查找名片'''
    # 1.提示用户输入要搜索的姓名
    find_name = input("请输入你要查找的名片:")
    # 2.遍历名片列表,查询要搜索的姓名,如果没有搜索到,提示给用户
    for card_dict in card_list:
        if card_dict["name"] == find_name:
            for name in ["姓名","手机号码","QQ号码","邮箱"]:
                print(name,end="\t\t")
            print("")
            print("-"*60)
            print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                            card_dict["phonenumber"],
                                            card_dict["QQnumber"],
                                            card_dict["email"]))
            print("-"*60)
            deal_card(card_dict)
            break
    else:
        print("没有找到%s的名片"%find_name)
 
def deal_card(find_dict):
    '''操作搜索到的名片'''
    print(find_dict)
    action_str = input("请选择要执行的操作【1】修改【2】删除")
    # 替换已经存在的键值对
    if action_str == "1":
        find_dict["name"] = input_card_info(find_dict['name'],'姓名:')
        find_dict["phonenumber"] = input_card_info(find_dict['phonenumber'],'电话:')
        find_dict["QQnumber"] = input_card_info(find_dict['QQnumber'],'QQ:')
        find_dict["email"] = input_card_info(find_dict['email'],'邮箱:')
        print("%s的名片修改成功"%find_dict)
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除成功")
 
def input_card_info(dict_value,tip_message):
    # 1.提示用户出入内容
    result_str = input(tip_message)
    # 2.如果用户输入内容,则返回输入值,否则返回字典值
    if len(result_str) > 0:
        return result_str
    else:
        return dict_value

参考文献

“❤️万字【Python基础】保姆式教学❤️,小白快速入门Python!”一文中综合性练手项目_退休的龙叔

Python名片管理系统_新海说

基于python下的综合名片管理系统_Logbook怪

上一篇:openjudge:正常血压


下一篇:3:fixture和conftest.py文件