6.5-1Python之列表嵌套字典的使用

基于字典的客户信息管理系统,使用列表嵌套字典完成。

代码逻辑参考【5.5Python之列表的嵌套使用】

在此基础上做优化处理:

# 初始化客户信息--列表嵌套字典
customers = [
    {"name": "Alice", "age": 25, "email": "alice@example.com"},
    {"name": "Bob", "age": 30, "email": "bob@example.com"},
    {"name": "Charlie", "age": 35, "email": "charlie@example.com"}
]

while True:
    print("""--------------欢迎进入客户管理系统--------------
           1. 添加客户
           2. 删除客户
           3. 修改客户
           4. 查询一个客户
           5. 查询所有客户
           6. 退出
-------------------------------------------""")
    choice = input("请输入你的选择:")
    # 1. 添加客户
    if choice == "1":
        name = input("请填写姓名:")
        age = int(input("请填写年龄:"))
        email = input("请填写邮箱:")
        # 将原来的列表改为字典
        new_customer = {
                        "name": name,
                        "age": age,
                        "email": email
                        }
        customers.append(new_customer)
        print(f"你已添加新的客户信息:{new_customer}")
    # 2. 删除客户
    elif choice == "2":
        if len(customers) == 0:
            print(f"暂无客户信息!")
        else:
            delete_customer = input("请填写需要删除的客户姓名:")
            # 将原来的列表的索引改为字典的key值
            for customerD in customers:
                if customerD["name"] == delete_customer:
                    customers.remove(customerD)
                    print(f"你已删除客户的信息:{delete_customer}")
                    break
                elif (customers[len(customers) - 1])["name"] == customerD["name"]:
                    print(f"查无此客户的信息:{delete_customer}")
    # 3. 修改客户
    elif choice == "3":
        if len(customers) == 0:
            print(f"暂无客户信息!")
        else:
            update_customer = input("请填写需要修改的客户姓名:")
            for customerD in customers:
                # 将原来的列表的索引改为字典的key值
                if customerD["name"] == update_customer:
                    name = input("请填写新的姓名:")
                    age = int(input("请填写新的年龄:"))
                    email = input("请填写新的邮箱:")
                    # 将原来的列表改为字典
                    customerD.update({"name": name, "age": age, "email": email})
                    print(f"你已将客户:{update_customer}的信息修改为:{customerD}")
                    break
                elif (customers[len(customers) - 1])["name"] == customerD["name"]:
                    print(f"查无此客户的信息:{update_customer}")
    # 4. 查询一个客户
    elif choice == "4":
        if len(customers) == 0:
            print(f"暂无客户信息!")
        else:
            search_customer = input("请填写需要查询的客户姓名:")
            for customerD in customers:
                # 将原来的列表的索引改为字典的key值
                if customerD["name"] == search_customer:
                    print(f"你查询的客户姓名: {customerD["name"]}, 年龄: {customerD["age"]}, 邮箱: {customerD["email"]}")
                    break
                elif (customers[len(customers) - 1])["name"] == customerD["name"]:
                    print(f"查无此客户的信息:{search_customer}")
    # 5. 查询所有客户
    elif choice == "5":
        if len(customers) == 0:
            print(f"暂无客户信息!")
        else:
            print(f"客户信息如下:")
            for customerD in customers:
                # 将原来的列表的索引改为字典的key值
                print(f"姓名:{customerD["name"]},年龄:{customerD["age"]},邮箱:{customerD["email"]}")
    # 6. 退出
    elif choice == "6":
        print("你已退出系统,感谢你的使用!")
        break
    # 其他情况
    else:
        print("输入的参数有误,请重新输入!")

代码逻辑上只是把原来的列表里的列表的逻辑修改为字典的逻辑。

相关推荐

  1. 6.5-1Python列表嵌套字典使用

    2024-04-15 01:52:02       17 阅读
  2. Python字符串,列表,元组,字典之间转换写法

    2024-04-15 01:52:02       13 阅读
  3. python3按列表元素中字典value排序

    2024-04-15 01:52:02       8 阅读
  4. Python 笔记1字典

    2024-04-15 01:52:02       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-15 01:52:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-15 01:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-15 01:52:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-15 01:52:02       20 阅读

热门阅读

  1. C#面:如何使用 IFormattable 接口实现格式化输出

    2024-04-15 01:52:02       20 阅读
  2. js和ES的关系

    2024-04-15 01:52:02       23 阅读
  3. v3+antd+echarts的bug记录

    2024-04-15 01:52:02       15 阅读
  4. 【springboot开发】PO、DTO等对象的基本概念

    2024-04-15 01:52:02       19 阅读
  5. js中return的作用有什么?

    2024-04-15 01:52:02       17 阅读
  6. nodejs安装常用命令

    2024-04-15 01:52:02       18 阅读
  7. [EFI]Z420电脑 Hackintosh 黑苹果efi引导文件

    2024-04-15 01:52:02       17 阅读
  8. 页面不活跃状态时 setTimeout不执行

    2024-04-15 01:52:02       15 阅读
  9. 微信小程序压缩图片到200kb,递归设置压缩质量

    2024-04-15 01:52:02       15 阅读
  10. 怎么用docker安装MySQL

    2024-04-15 01:52:02       18 阅读
  11. 富格林:出金异常警惕黑幕陷阱受骗

    2024-04-15 01:52:02       17 阅读
  12. 二叉树总结

    2024-04-15 01:52:02       15 阅读
  13. L1-019 谁先倒python

    2024-04-15 01:52:02       17 阅读