Python基础学习之名片管理系统

# 至少封装成三个函数,并且都将存放名片的列表作为参数传入
#     * 一个函数负责添加名片
#     * 一个函数负责打印功能
#     * 一个函数负责清空功能




def add_card(card_list):
    """添加名片功能"""
    # 获取新的名字
    new_name = input("请输入姓名:")
    new_tel = input("请输入电话:")
    new_addr = input("请输入住址:")


    # 定义名片字典
    new_card = {}
    new_card["name"] = new_name
    new_card["tel"] = new_tel
    new_card["addr"] = new_addr


    # 将名片字典追加到名片列表
    card_list.append(new_card)




def print_card(card_list):
    """打印名片功能"""
    for card in card_list:
        print("姓名:%s    电话:%s     住址:%s" % (card["name"], card["tel"], card["addr"]))




def clear_card(card_list):
    """清空名片功能"""
    card_list.clear()




def del_card():
    # 获取要删除名字
    del_name = input("请输入您要删除的姓名")
    # 遍历名片列表,判断输入的姓名是否存在
    for card in card_list:
        if del_name in card.values():
            card_list.remove(card)
            print("%s 的名片删除成功" % del_name)
            break
    else:
        print("没有找到%s的名片" % del_name)




def modi_card():
    # 获取旧名字
    old_name = input('请输入旧名字')


    # 把旧名字修改为新名字
    for card in card_list:
        if card["name"] == old_name:
            # 获取新名字
            new_name = input('请输入新名字:')
            card["name"] = new_name
            print("%s的名片修改成功" % old_name)
            break
    else:
        print("没有找到您要修改的名字")




def find_card():
    # 获取要查找的名字
    find_name = input('请输入要查找的名字:')


    # 判断名字是否存在
    for card in card_list:
        if card["name"] == find_name:
            print("找到了")
            break
    else:
        print("没有找到")




def main():
    while True:
        # 1. 打印系统提示
        print('=======================')
        print('欢迎使用 名片管理系统 v1.0')
        print('1.添加名片')
        print('2.删除名片')
        print('3.修改名片')
        print('4.查看名片')
        print('5.查看所有名字')
        print('6.清空名字')
        print('0.退出系统')
        print('=======================')


        # 2. 获取用户选择
        command = input('请输入您的选择:')


        # 3. 根据选择进行处理
        if command == '1':
            add_card(card_list)


        elif command == '2':
            # "删除"
            del_card()
        elif command == '3':
            # "修改"
          modi_card()


        elif command == '4':
            # "查看"
            find_card()


        elif command == '5':
            print_card(card_list)


        elif command == '6':
            clear_card(card_list)


        elif command == '0':
            # "退出"
            break


        else:
            # "不知道什么指令"
            print('输入错误,无法识别')




card_list = []  # 存放名片的列表, 必须放在循环外
# 以只读模式打开card.dat文件,把名片列表内容加载到card_list
f = open('card.dat','r')
content = f.read()
f.close()
if len(content) != 0:
    file_list = eval(content)
    card_list.extend(file_list)


main()
# 以只写模式打开一个文件,用于保存card_list内容
f = open("card.dat",'w')
f.write(str(card_list))  # 写入文件只能以文本方式写入
f.close()
print('程序结束')

猜你喜欢

转载自blog.csdn.net/weixin_42489971/article/details/80928395