关于这Python脚本,它实现了一个简单的客户数据管理系统。这个系统允许用户进行以下操作:
-
添加客户:用户可以通过输入姓名、年龄和邮箱来添加新的客户数据。这些数据会被添加到
customers
列表中。 -
删除客户:用户可以通过输入客户的姓名来删除该客户的数据。如果找到了对应的客户,则将其从
customers
列表中移除。 -
修改客户:用户可以通过输入要修改的客户姓名来找到该客户,并输入新的姓名、年龄和邮箱来更新其数据。
-
查询一个客户:用户可以通过输入客户的姓名来查询该客户的详细信息。如果找到了对应的客户,则会打印出其姓名、年龄和邮箱。
-
查询所有客户:用户可以查询并打印出所有客户的姓名、年龄和邮箱。如果列表为空,则会提示“数据为空”。
-
退出:用户可以选择退出程序,此时程序将结束运行。
-
删除所有用户数据:这是一个谨慎的操作,用户需要确认是否要删除所有客户数据。如果确认,则
customers
列表将被清空,并打印出“已清空当前所有客户数据”。
在脚本中,你使用了while True
循环来不断显示菜单并接受用户的输入,直到用户选择退出。这种结构使得程序能够持续运行,直到用户明确选择停止。
此外 没有做数据持久化,当前脚本中的数据是存储在内存中的,一旦程序结束,所有数据都会丢失。你可以考虑将数据保存到文件中,这样即使程序关闭,数据也能被保留下来。可以使用Python的内置模块如pickle
或json
来实现数据的序列化和反序列化。
大家可以将这脚本当成一个示例去完善和借鉴,若有bug 请多多指教
customers = [
["Ace", 25, "alice@123.com"],
["enson", 30, "bob@123.com"],
["jj", 30, "bob@123.com"],
["harry", 35, "charlie@123.com"]
]
while True:
print("""
1. 添加客户
2. 删除客户
3. 修改客户
4. 查询一个客户
5. 查询所有客户
6. 退出
7. 删除所有用户数据,谨慎操作!!!
""")
choice = input("输入您的选择:")
if choice == "1":
add_customers_name = input("请输入要添加的姓名:")
add_customers_age = int(input("请输入要添加的年龄:"))
add_customers_email = input("请输入要添加的邮箱:")
add_customers = [add_customers_name, add_customers_age, add_customers_email]
customers.append(add_customers)
print(f"你已经成功添加用户{add_customers_name}")
if choice == "2":
flog = False
name = input("请输入要删除用户的名称:")
for i in customers:
if i[0] == name:
customers.remove(i)
flog = True
continue
if flog:
print(f"已删除用户{name}")
else:
print(f"没有找到用户{name}")
if choice == "3":
name = input("请输入要修改用户的名称:")
for i in customers:
if i[0] == name:
print(i)
new_name = input("请输入新用户名称:")
new_age = int(input("请输入年龄新值:"))
new_email = input("请输入邮箱新值:")
i[0] = new_name
i[1] = new_age
i[2] = new_email
print(customers)
if choice == "4":
query_customer_name = input("请输入要查询的用户名称:")
flog = False
for i in customers:
if i[0] == query_customer_name:
print(f"姓名{i[0]},年龄{i[1]},邮箱{i[2]}")
flog = True
continue
if flog:
print()
else:
print(f"没有找到用户{query_customer_name}")
if choice == "5":
if len(customers) == 0:
print("数据为空")
else:
for i in customers:
print(f"姓名:{i[0]:8},年龄:{i[1]},邮箱:{i[2]:4}")
if choice == "6":
break
if choice == "7":
f = input("你确定要删除所有数据,这一步是不可逆的,请选择(Y/N):")
if f == "Y":
customers.clear()
print("已清空当前所有客户数据")
print(f"当前库的状态{customers}")
elif f == "N":
print("我们将退出删除操作")
continue
else:
print(f"{f}无效输入,退出当前操作")
if choice not in ("1,2,3,4,5,6"):
print("输入错误重新输入")