目录
一、🔎源代码
user_list = [
{'name': '张三', 'phone': '123', 'wx': '321'},
{'name': '李四', 'phone': '456', 'wx': '654'}
]
def add_user():
name = input('请输入姓名:')
for i in user_list:
if i['name'] == name:
print('此用户名已重复')
return
phone = input('请输入手机号:')
wx = input('请输入微信号:')
user = {'name': name, 'phone': phone, 'wx': wx}
user_list.append(user)
print(user_list)
def check_index(i):
if not i.isdigit():
print('您输入的数字不合法')
return False
index = int(i)
if index < 0 or index > len(user_list) - 1:
print('您输入的名片序号不在有效范围内')
return False
return True
def del_user():
index = input('请输入要删除的名片序号')
if check_index(index):
index = int(index)
else:
return
ans = input('您是否真的要删除?(YES or NO):')
if ans.upper() == 'YES':
user_list.pop(index)
print(user_list)
def change_user():
index = input('请输入要修改的名片序号')
if check_index(index):
index = int(index)
else:
return
user = user_list[index]
print('您要修改的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))
new_name = input('请输入新的名字:')
for i in user_list:
if i['name'] == new_name:
print('修改失败,新名字已存在')
return
new_phone = input('请输入新的手机号:')
new_wx = input('请输入新的微信号:')
user['name'] = new_name
user['phone'] = new_phone
user['wx'] = new_wx
print(user_list)
def select_user():
name = input('请输入要查询的名片名字:')
for i in user_list:
if i['name'] == name:
print('您查询到的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**i))
else:
print('输入的名字不存在')
def showall_user():
print('序号 姓名 手机号 微信号')
for i,user in enumerate(user_list):
print(i,'\t'+'\t'+user['name'].ljust(5),user['phone'].ljust(5),user['wx'].ljust(5))
def exit_sys():
ans = input('请确认您是否要退出--(YES or NO):')
if ans.upper() == 'YES':
print('您已成功退出,欢迎下次继续使用!!!')
exit()
elif ans.upper() == 'NO':
print('返回主界面')
else:
print('您的输入有误,请输入yes或者no(大小写都可以)')
def start():
while True:
print("""------------------------------------------
名片管理系统
1.添加名片 4.查询名片
2.删除名片 5.显示所有的名片
3.修改名片 6.退出系统
------------------------------------------
""")
operator = input('请输入要进行的操作(数字):')
# 添加名片内容
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
change_user()
elif operator == '4':
select_user()
elif operator == '5':
showall_user()
elif operator == '6':
exit_sys()
else:
print('输入有误,请重新输入...')
start()
二、💯代码讲解
保存用户数据的列表
user_list = [ {'name': '张三', 'phone': '123', 'wx': '321'}, {'name': '李四', 'phone': '456', 'wx': '654'} ]创建一个列表里面先存放2组字典,有一个预设置值
添加用户的方法
def add_user():
# 获取用户信息
name = input('请输入姓名:')
# 输入姓名后 验证是否重复
for i in user_list:
if i['name'] == name:
print('此用户名已重复')
return # 这个可以直接结束整个函数
phone = input('请输入手机号:')
wx = input('请输入微信号:')
# 保存数据
user = {'name': name, 'phone': phone, 'wx': wx}
user_list.append(user)
print(user_list)
这个类是单独创建的一个方法,创建这个方法方便后面直接调用,不需要再写检测数字是否合法的方法
# 专门检测输入的数字是否合法
def check_index(i):
if not i.isdigit():
print('您输入的数字不合法')
return False
index = int(i)
if index < 0 or index > len(user_list) - 1:
print('您输入的名片序号不在有效范围内')
return False
return True
删除名片的方法,这里检测用户输入的数字是否合法直接调用 check_index方法即可
def del_user():
index = input('请输入要删除的名片序号')
if check_index(index):
index = int(index)
else:
return
ans = input('您是否真的要删除?(YES or NO):')
if ans.upper() == 'YES':
user_list.pop(index)
print(user_list)
这里是修改名片的方法,需要注意的就是 展示信息的时候 用的是拆包这样方便 而且代码更优化
def change_user():
index = input('请输入要修改的名片序号')
if check_index(index):
index = int(index)
else:
return
user = user_list[index]
# 展示修改的信息 使用拆包
print('您要修改的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))
new_name = input('请输入新的名字:')
# 判断新的名字是否重复
for i in user_list:
if i['name'] == new_name:
print('修改失败,新名字已存在')
return
new_phone = input('请输入新的手机号:')
new_wx = input('请输入新的微信号:')
user['name'] = new_name
user['phone'] = new_phone
user['wx'] = new_wx
print(user_list)
这里写的是查询名片的方法,展示信息的时候也使用了 拆包的方法
def select_user():
name = input('请输入要查询的名片名字')
for i in user_list:
if i['name'] == name:
print('您查询到的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))
else:
print('输入的名字不存在')
这里写的是查询所有信息的方法
def showall_user():
print('序号 姓名 手机号 微信号')
for i,user in enumerate(user_list):
print(i,'\t'+'\t'+user['name'].ljust(5),user['phone'].ljust(5),user['wx'].ljust(5))
这里写的是退出系统的方法
def exit_sys():
ans = input('请确认您是否要退出--(YES or NO):')
if ans.upper() == 'YES':
print('您已成功退出,欢迎下次继续使用!!!')
# return True 这个办法就是 在后面还要加一个条件判断 判断函数返回True就 break
exit()
elif ans.upper() == 'NO':
print('返回主界面')
else:
print('您的输入有误,请输入yes或者no(大小写都可以)')
这里就是启动程序的方法,首先使用print进行布局 其次 就是输入1-6 调用上面的各个部分的功能的函数
def start():
while True:
print("""------------------------------------------
名片管理系统
1.添加名片 4.查询名片
2.删除名片 5.显示所有的名片
3.修改名片 6.退出系统
------------------------------------------
""")
operator = input('请输入要进行的操作(数字):')
# 添加名片内容
if operator == '1':
add_user()
elif operator == '2':
del_user()
elif operator == '3':
change_user()
elif operator == '4':
select_user()
elif operator == '5':
showall_user()
elif operator == '6':
exit_sys()
else:
print('输入有误,请重新输入...')
901





