1. 需求
""" 根据下面的需求描述,完成简单的用户管理系统,注意封装函数 1. 后台管理员只有一个用户: admin, 密码: admin 2. 当管理员登陆账号成功后, 可以管理前台会员信息. 3. 会员信息管理包含方法: a.添加会员信息 b.删除会员信息 c.查看单个会员信息 d.查看所有会员信息 4. 对会员按照年龄降序排序 5. 退出 """
2. 思路
1. 框架
1.函数定义
def get_mid(): # 获取会员编号
pass # pass:此处用于后期添加、完善代码(使用pass不会报错)
def add_user(): # 增加会员信息
pass
def remove_user(): # 删除会员信息
pass
def show_single(): # 查看单个会员信息
pass
def show_all(): # 查看全部会员信息
pass
def sort_users(): # 对会员按年龄排序
pass
2.调用函数
for _ in range(3):
user_name = input("请输入用户名:")
user_password = input("请输入密码:")
if user_name == "admin" and user_password == "admin":pass
else:
print(f"账号:{user_name}或者密码:{user_password}输入错误")
else:
print("输入错误三次,请重新输入...")
2. 功能
1. 增添功能
def get_mid(): # 获取用户编号
while True:
mid = str(random.randint(10000, 99999))
if mid not in [info_dict["编号"] for info_dict in user_database]:
return mid
def add_user():
mid = get_mid()
user_name = input("请输入用户名:")
user_sex = input("请输入性别:")
user_age = input("请输入年龄:")
user_database.append(dict(zip(["编号","姓名","性别","年龄"],[mid,user_name,user_sex,user_age])))
print(f"会员录入成功,会员编号是{mid}")
注释:
1. 增添会员信息前,先获取会员编号;
2. random.randint(),需先导入random包,此函数取值范围为闭区间
3. get_mid(),返回值前作了一次判断(列表推导式),判断编号是否已经在用户数据库中
列表推导式可参考:
4. 添加方式外层为列表常用append方法,内层为字典dict(zip())定义方法
2. 删除功能
def remove_user():
mid = input("请输入需要删除的会员的编号:")
for info_dict in user_database:
if mid == info_dict["编号"]:
user_database.remove(info_dict)
print(f"编号为{mid}删除成功")
break
else:
print("删除失败,输入错误会员编号")
遍历会员信息库,查询需要删除的会员的编码,查询成功调用remove函数删除
3. 展示会员信息
def show_single():
mid = input("请输入需要查询的会员编号:")
for info_dict in user_database:
if mid == info_dict["编号"]:
print(f"该会员信息为:{info_dict}")
break
else:
print("查询失败,输入错误会员编号")
def show_all():
for info_dict in user_database:
print(f"会员信息为:{info_dict}")
4. 会员排序
def sort_users():
user_database.sort(reverse=True,key=lambda info_dict:info_dict["年龄"])
print(user_database)
1. 用户数据库调用sort函数
2. sort函数中的key关键字中使用匿名函数
3. 实践
1. 代码
# 1.封装函数
import random
user_database = []
def get_mid(): # 获取用户编号
while True:
mid = str(random.randint(10000, 99999))
if mid not in [info_dict["编号"] for info_dict in user_database]:
return mid
def add_user():
mid = get_mid()
user_name = input("请输入用户名:")
user_sex = input("请输入性别:")
user_age = input("请输入年龄:")
user_database.append(dict(zip(["编号","姓名","性别","年龄"],[mid,user_name,user_sex,user_age])))
print(f"会员录入成功,会员编号是{mid}")
def remove_user():
mid = input("请输入需要删除的会员的编号:")
for info_dict in user_database:
if mid == info_dict["编号"]:
user_database.remove(info_dict)
print(f"编号为{mid}删除成功")
break
else:
print("删除失败,输入错误会员编号")
def show_single():
mid = input("请输入需要查询的会员编号:")
for info_dict in user_database:
if mid == info_dict["编号"]:
print(f"该会员信息为:{info_dict}")
break
else:
print("查询失败,输入错误会员编号")
def show_all():
for info_dict in user_database:
print(f"会员信息为:{info_dict}")
def sort_users():
user_database.sort(reverse=True,key=lambda info_dict:info_dict["年龄"])
print(user_database)
# 2.调用函数
for _ in range(3):
print("会员管理系统".center(50,"="))
user_name = input("请输入用户名:")
user_password = input("请输入密码:")
if user_name == "admin" and user_password == "admin":
print("登录成功,您好")
print("""您可以选择的功能
1.添加会员信息
2.删除会员信息
3.查看单个会员信息
4.查看全部会员信息
5.对会员按照年龄降序排序
6.退出""")
while True:
select = input("请选择功能")
if select == "1":
add_user()
elif select == "2":
remove_user()
elif select == "3":
show_single()
elif select == "4":
show_all()
elif select == "5":
sort_users()
elif select =="6":
print("欢迎再次使用")
break
else:
print("占无此功能...")
break
else:
print(f"账号:{user_name}或者密码:{user_password}输入错误")
else:
print("输入错误三次,请重新输入...")