衔接上一部分:Python练手小项目(名片管理系统<第一部分>)_独一无二的李狗蛋儿的博客-CSDN博客
开始进行操作函数的实现
首先完成添加函数:
user_list = [{'序号':1,'姓名': '的嘎达', '电话': '3123131', 'QQ号': '1313'},
{'序号':2,'姓名': '李四爱吃鱼', '电话': '3123131', 'QQ号': '1313'}
]
counts = len(user_list)
def add_user():
name = input("请输入姓名:")
#接收用户姓名后,立刻检索所有的用户,查看用户名是否重复
for user in user_list:
if user["姓名"] == name:
print("添加失败,此用户名已存在")
break
#return 也可以
else:
tell = input("请输入电话号码:")
qq = input("请输入QQ号:")
count = counts + 1
#保存用户的数据
user = {"序号":count,"姓名": name , "电话": tell , "QQ号":qq}
#将新创建的用户字典添加至user_list
user_list.append(user)
print(user_list)
1.首先在函数外部定义一个列表用于存储用户数据
2.使用for循环和if...else...条件控制语句对用户数据列表进行遍历和判断,查看用户名是否重复是否
3.如果没有此用户,接受用户输入的其他数据,并将其保存为一个字典类型的数据
4.将存有用户数据的字典添加至用户数据列表,即添加用户成功
删除用户函数
def deleter_user():
index = input("请输入要删除的序号:")
#如果输入的不是整数
if not index.isdigit():
print("输入的数字错误")
else:
index= int(index)
if index < 0 or index > len(user_list)-1:
print("输入的数字不在有效范围内")
else:
answer = input("您是否确定删除?(确定1,不确定2):")
if answer.lower() == "1":
#列表删除数据的方法:del、pop(根据下标删除) remove(指定元素删除) clear
user_list.pop(index)
#user_list.remove(user_list[index])
print(user_list)
1.根据输入用户输入的序号,判断序号是否违规输入
2.使用pop方法进行删除操作
修改操作函数
def modify_user():
print("修改名片")
index = input("请输入要删除的序号:")
user = user_list[index]
print("请选择您要修改的信息:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
new_name = input("请输入新的姓名:")
for u in user_list:
if u['姓名'] == new_name:
print('不允许同名')
return
new_tell = input("请输入新的手机号:")
new_qq = input("请输入新的QQ号:")
user['姓名'] = new_name
user['电话'] = new_tell
user['QQ号'] = new_qq
print(user_list)
1.用户输入需要修改的序号
2.将输入的序号做下标获取具体的用户
3.重置用户信息
查询操作函数
def search_user():
print("查询名片")
names = input("请输入要查询名片的名字:")
for user in user_list:
if user['姓名'] == names:
print("查询到的信息如下:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
return
else:
print("用户不存在")
1.用户输入的名字
2.遍历用户列表中的用户字典
3.如果用户字典中的名字与用户输入的名字相同,则打印信息
查询所有用户的函数
def show_all():
print("显示所有名片")
print("序号------姓名------手机号------QQ号")
for user in user_list:
print(user['序号'],user['姓名'].ljust(10,'-'),user['电话'],user['QQ号'])
遍历打印所有用户信息
退出程序函数
def exit_system():
answer = input("您是否确定退出(是按1,不是按2):")
if answer == "1":
print("退出")
return True
exit()
exit()退出程序
完整代码:
user_list = [{'姓名': '的嘎达', '电话': '3123131', 'QQ号': '1313'},
{'姓名': '李四爱吃鱼', '电话': '3123131', 'QQ号': '1313'}
]
def add_user():
name = input("请输入姓名:")
#接收用户姓名后,立刻检索所有的用户,查看用户名是否重复
for user in user_list:
if user["姓名"] == name:
print("添加失败,此用户名已存在")
break
#return 也可以
else:
tell = input("请输入电话号码:")
qq = input("请输入QQ号:")
#保存用户的数据
user = {"姓名": name , "电话": tell , "QQ号":qq}
#将新创建的用户字典添加至user_list
user_list.append(user)
print(user_list)
def check_index(i):
if not i.isdigit() :
print('输入的数字不合法')
return False
i = int(i)
if i < 0 or i > len(user_list)-1:
print("输入的数字不在有效范围内")
return False
return True
def deleter_user():
index = input("请输入要删除的序号:")
#如果输入的不是整数
if not index.isdigit():
print("输入的数字错误")
else:
index= int(index)
if index < 0 or index > len(user_list)-1:
print("输入的数字不在有效范围内")
else:
answer = input("您是否确定删除?(确定1,不确定2):")
if answer.lower() == "1":
#列表删除数据的方法:del、pop(根据下标删除) remove(指定元素删除) clear
user_list.pop(index)
#user_list.remove(user_list[index])
print(user_list)
def modify_user():
print("修改名片")
index = input("请输入要删除的序号:")
if not check_index(index):
return
index = int(index)
user = user_list[index]
print("请选择您要修改的信息:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
new_name = input("请输入新的姓名:")
for u in user_list:
if u['姓名'] == new_name:
print('不允许同名')
return
new_tell = input("请输入新的手机号:")
new_qq = input("请输入新的QQ号:")
user['姓名'] = new_name
user['电话'] = new_tell
user['QQ号'] = new_qq
print(user_list)
def search_user():
print("查询名片")
names = input("请输入要查询名片的名字:")
for user in user_list:
if user['姓名'] == names:
print("查询到的信息如下:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
return
else:
print("用户不存在")
def show_all():
print("显示所有名片")
print("序号------姓名------手机号------QQ号")
for i,user in enumerate(user_list):
print(i,user['姓名'].ljust(10,'-'),user['电话'],user['QQ号'])
#ljust() 填充
def exit_system():
#print("退出系统")
answer = input("您是否确定退出(是按1,不是按2):")
# if answer == "1":
# print("退出")
# return True
return answer == "1"
#answer 等于1 相当于True
#也可以使用exit()内置函数退出整个程序
def start():
while True:
print("""------------------------------\n
名片管理系统1.0\n
1:添加名片\n
2:删除名片\n
3:修改名片\n
4:查询名片\n
5:查询所有名片\n
6:退出系统\n
------------------------------""")
operator = input("请输入您要进行的操作(数字):")
if operator == "1":
add_user()
elif operator == "2":
deleter_user()
elif operator == "3":
modify_user()
elif operator == "4":
search_user()
elif operator == "5":
show_all()
elif operator == "6":
result = exit_system()
if result:
print("退出系统")
break
else:
print("请重新输入")
start()