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('程序结束')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值