一:普通代码
[Python] 纯文本查看 复制代码 import sys
#导入原始列表
Data = [
{"username": "张三", "password": "11235", "ident": "普通用户"},
{"username": "李四", "password": "22344", "ident": "管理员"},
{"username": "王五", "password": "48554", "ident": "会员"}
]
current_user = None #使开始运行程序时user状态为空
wrong_count = 0 #计错误次数
print("欢迎您使用XX登录系统,",end='')
while True:
if current_user is None: #判断user状态是否为空
username = input("请输入用户名:")
password = input("请输入密码:")
for d in Data: #在列表中核对username与password是否匹配
if d["username"] == username and d["password"] == password:
print("\033[31m登录成功!\033[0m")
current_user = d
print(f"当前用户:\033[31m{current_user['username']}\033[0m,用户身份为:\033[31m{current_user['ident']}\033[0m")
break
# for 临时变量 in 序列:
# 重复执行的代码
# ......
# else:
# 循环正常结束后要执行的代码
else:
wrong_count += 1
if 3-wrong_count!=0:
print(f"用户名或密码错误!您还有{3-wrong_count}次机会,请重新输入!")
if wrong_count >= 3:
print("\033[31m输入密码错误次数过多,程序退出!\033[0m")
break
continue
print("请选择操作:")
print("1. 添加用户")
print("2. 删除用户")
print("3. 修改用户权限")
print("4. 修改用户密码")
print("5. 修改用户名")
print("6. 退出登录")
print("7. 退出程序")
print("8. 打印所有账户")
choice = input("请输入您的选择:")
if choice == "1":
if current_user["ident"] != "管理员":
print("\033[31m只有管理员可以添加用户!\033[0m")
continue
username = input("请输入新用户的用户名:")
for d in Data:
if d["username"] == username:
print("\033[31m该用户名已存在!\033[0m")
break
else:
password = input("请输入新用户的密码:")
ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
Data.append({"username": username, "password": password, "ident": ident})
print("添加用户成功!")
elif choice == "2":
if current_user["ident"] != "管理员":
print("\033[31m只有管理员可以删除用户!\033[0m")
continue
username = input("请输入要删除的用户名:")
for d in Data:
if d["username"] == username:
Data.remove(d)
print("删除用户成功!")
break
else:
print("\033[31m该用户名不存在!\033[0m")
elif choice == "3":
if current_user["ident"] != "管理员":
print("只有\033[31m管理员\033[0m可以修改用户权限!")
continue
username = input("请输入要修改权限的用户名:")
for d in Data:
if d["username"] == username:
ident = input("请输入新的权限身份(普通用户、管理员、会员):")
d["ident"] = ident
print("修改用户权限成功!")
break
else:
print("\033[31m该用户名不存在!\033[0m")
elif choice == "4":
username = input("请输入要修改密码的用户名:")
for d in Data:
if d["username"] == username:
password = input("请输入新的密码:")
d["password"] = password
print("修改密码成功!")
break
else:
print("\033[31m该用户名不存在!\033[0m")
elif choice == "5":
if current_user["ident"] != "会员":
print("只有\033[31m会员\033[0m可以修改自己的用户名!")
continue
for d in Data:
if d["username"] == current_user["username"]:
new_username = input("请输入新的用户名:")
for d2 in Data:
if d2["username"] == new_username:
print("\033[31m该用户名已存在!\033[0m")
break
else:
d["username"] = new_username
current_user = d
print("修改用户名成功!")
break
else:
print("\033[31m用户名不存在!\033[0m")
elif choice == "6":
current_user = None
print("退出登录成功!")
elif choice == "7":
sys.exit(0)
elif choice == "8":
for u in Data:
print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
else:
print("\033[31m输入有误,请重新输入!\033[0m")
二:函数
[Python] 纯文本查看 复制代码 #导入原始列表
Data=[
{'username': '张三', 'password': '11235', 'ident': '普通用户','user_state':'1','error_time':0},
{'username': '李四', 'password': '22344', 'ident': '管理员','user_state':'1','error_time':0},
{'username': '王五', 'password': '48554', 'ident': '会员','user_state':'1','error_time':0}
]
def login(): #登录函数
username = input('请输入账号:')
#error_time = 0
#while error_time<3: #判断错误次数
for di in Data:
if di['username'] == username: #判断是否找到用户名
if di['user_state']==0:
print('该账户已冻结!')
return None
error_time = 0
while error_time<3: #判断错误次数
password=input(f'请输入用户名\'{username}\'的密码:')
if password == di['password']:
print("登录成功!")
print(f"欢迎您,{di['username']},您的身份是{di['ident']}。")
return di
else:
error_time+=1
if error_time>=3:
di['user_state']=0 #冻结账户
print('该账户已冻结!')
return None
access_time=3-error_time
print(f'用户名\'{username}\'的密码错误!您还剩余{access_time}次机会!')
else:
print('用户名不存在!')
return None
def add_user(): #添加账户
username = input("请输入新用户的用户名:")
for u in Data:
if u["username"] == username:
print("账号已存在,添加失败!")
return
password = input("请输入新用户的密码:")
ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
user_info = {"username": username, "password": password, "ident": ident}
Data.append(user_info)
print("用户信息添加成功!")
def del_user(current_user): #删除用户
username = input("请输入要删除的账号:")
if current_user['username']!=username:
for u in Data:
if u["username"] == username:
Data.remove(u)
print("用户信息删除成功!")
return
print("未找到该用户信息!")
else:
print('管理员不可以删除自己的账户!')
return
def modify_ident(current_user): #修改权限
username = input("请输入要修改权限的账号:")
if current_user['username'] != username:
for u in Data:
if u["username"] == username:
ident = input("请输入新的身份:")
u["ident"] = ident
print("用户身份修改成功!")
return
print("未找到该用户信息!")
else:
print('管理员不可以修改自己的权限!')
return
def modify_password(current_user): #修改密码
username = input("请输入要修改密码的账号:")
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" or current_user == u:
password = input("请输入新的密码:")
u["password"] = password
print("密码修改成功!")
return
else:
print("您只能修改自己的密码!只有管理员才可以任意修改密码!")
return
print("未找到该用户信息!")
def modify_username(current_user): #修改账户用户名
username = input("请输入您要修改的账号:")
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" or current_user == u and u['ident']=='会员':
new_username = input("请输入新的用户名:")
u["username"] = new_username
print("用户名修改成功!")
return
else:
print("只有管理员和会员才可以修改用户名!")
return
print("未找到该用户信息!")
def modify_state(current_user): #修改状态
username = input("请输入您要修改的账号:")
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" and username!=current_user["username"]:
new_state = input("请输入新的状态(1:解封 0:封禁):")
if new_state=='1':
u["user_state"] = '1'
print('该账号已解封!')
return
elif new_state=='0':
u["user_state"] = '0'
print('该账号已封禁!')
return
else:
print("非法输入!")
return
else:
print("管理员不可以修改自己的状态!")
return
print("未找到该用户信息!")
def output_all_users(): #输出所有用户信息
print("=" * 15)
print("所有用户信息如下:")
for u in Data:
print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
def main():
print("欢迎您使用XX登录系统,", end='')
current_user=login()
while True:
while current_user == None:
current_user = login()
print("=" * 15)
print("1. 添加用户信息")
print("2. 删除用户信息")
print("3. 修改用户权限")
print("4. 修改用户密码")
print("5. 修改用户名")
print("6. 修改用户状态")
print("7. 输出所有用户信息")
print("8. 退出登录")
print("9. 退出程序")
print("=" * 15)
choice = input("请输入您的选择:")
if choice == "1":
if current_user["ident"] != "管理员":
print("您没有添加用户的权限!")
else:
add_user()
elif choice == "2":
if current_user["ident"] != "管理员":
print("您没有删除用户的权限!")
else:
del_user(current_user)
elif choice == "3":
if current_user["ident"] != "管理员":
print("您没有修改用户权限的权限!")
else:
modify_ident(current_user)
elif choice == "4":
modify_password(current_user)
elif choice == "5":
modify_username(current_user)
elif choice == "6":
if current_user["ident"] != "管理员":
print("您没有修改用户的状态!")
else:
modify_state(current_user)
elif choice == "7":
if current_user["ident"] != "管理员":
print("您没有查看所有用户信息的权限!")
else:
output_all_users()
elif choice == '8':
current_user = None
print("退出登录成功!")
elif choice == '9':
print("退出程序成功!")
return
if __name__ == '__main__':
main()
三:文件
[Python] 纯文本查看 复制代码 #导入原始列表
import json
with open('../data.json', 'r', encoding='utf-8') as f:
Data=json.load(f)
def login(): #登录函数
username = input('请输入账号:')
for di in Data:
if di['username'] == username: #判断是否找到用户名
if di['user_state']==0:
print('该账户已冻结!')
return None
error_time = 0
while error_time<3: #判断错误次数
password=input(f'请输入用户名\'{username}\'的密码:')
if password == di['password']:
print("登录成功!")
print(f"欢迎您,{di['username']},您的身份是{di['ident']}。")
return di
else:
error_time+=1
if error_time>=3:
di['user_state']=0 #冻结账户
print('该账户已冻结!')
return None
access_time=3-error_time
print(f'用户名\'{username}\'的密码错误!您还剩余{access_time}次机会!')
else:
print('用户名不存在!')
return None
def add_user(): #添加账户
username = input("请输入新用户的用户名:")
if username=='Super':
print('禁止添加Super账户!')
return
for u in Data:
if u["username"] == username:
print("账号已存在,添加失败!")
return
password = input("请输入新用户的密码:")
ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
user_info = {"username": username, "password": password, "ident": ident}
Data.append(user_info)
print("用户信息添加成功!")
def del_user(current_user): #删除用户
username = input("请输入要删除的账号:")
if username=='Super':
print('禁止操作Super账户!')
return
if current_user['username']!=username:
for u in Data:
if u["username"] == username:
Data.remove(u)
print("用户信息删除成功!")
return
print("未找到该用户信息!")
else:
print('管理员不可以删除自己的账户!')
return
def modify_ident(current_user): #修改权限
username = input("请输入要修改权限的账号:")
if username=='Super':
print('禁止操作Super账户!')
return
if current_user['username'] != username:
for u in Data:
if u["username"] == username:
ident = input("请输入新的身份:")
u["ident"] = ident
print("用户身份修改成功!")
return
print("未找到该用户信息!")
else:
print('管理员不可以修改自己的权限!')
return
def modify_password(current_user): #修改密码
username = input("请输入要修改密码的账号:")
if username=='Super':
print('禁止操作Super账户!')
return
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" or current_user == u:
password = input("请输入新的密码:")
u["password"] = password
print("密码修改成功!")
return
else:
print("您只能修改自己的密码!只有管理员才可以任意修改密码!")
return
print("未找到该用户信息!")
def modify_username(current_user): #修改账户用户名
username = input("请输入您要修改的账号:")
if username=='Super':
print('禁止操作Super账户!')
return
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" or current_user == u and u['ident']=='会员':
new_username = input("请输入新的用户名:")
u["username"] = new_username
print("用户名修改成功!")
return
else:
print("只有管理员和会员才可以修改用户名!")
return
print("未找到该用户信息!")
def modify_state(current_user): #修改状态
username = input("请输入您要修改的账号:")
if username=='Super':
print('禁止修改Super账户!')
return
for u in Data:
if u["username"] == username:
if current_user["ident"] == "管理员" and username!=current_user["username"]:
new_state = input("请输入新的状态(1:解封 0:封禁):")
if new_state=='1':
u["user_state"] = '1'
print('该账号已解封!')
return
elif new_state=='0':
u["user_state"] = '0'
print('该账号已封禁!')
return
else:
print("非法输入!")
return
else:
print("管理员不可以修改自己的状态!")
return
print("未找到该用户信息!")
def output_all_users(): #输出所有用户信息
print("=" * 15)
print("所有用户信息如下:")
for u in Data:
if u['username']=='Super':
continue
print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
def main():
print("欢迎您使用XX登录系统,", end='')
current_user=login()
while True:
while current_user == None:
current_user = login()
print("=" * 15)
print("1. 添加用户信息")
print("2. 删除用户信息")
print("3. 修改用户权限")
print("4. 修改用户密码")
print("5. 修改用户名")
print("6. 修改用户状态")
print("7. 输出所有用户信息")
print("8. 退出登录")
print("9. 退出程序")
print("=" * 15)
choice = input("请输入您的选择:")
if choice == "1":
if current_user["ident"] != "管理员":
print("您没有添加用户的权限!")
else:
add_user()
elif choice == "2":
if current_user["ident"] != "管理员":
print("您没有删除用户的权限!")
else:
del_user(current_user)
elif choice == "3":
if current_user["ident"] != "管理员":
print("您没有修改用户权限的权限!")
else:
modify_ident(current_user)
elif choice == "4":
modify_password(current_user)
elif choice == "5":
modify_username(current_user)
elif choice == "6":
if current_user["ident"] != "管理员":
print("您没有修改用户的状态!")
else:
modify_state(current_user)
elif choice == "7":
if current_user["ident"] != "管理员":
print("您没有查看所有用户信息的权限!")
else:
output_all_users()
elif choice == '8':
current_user = None
print("退出登录成功!")
elif choice == '9':
with open('../data.json', 'w', encoding='utf-8') as z:
Da=json.dumps(Data,ensure_ascii=False)
z.write(Da)
print("退出程序成功!")
return
if __name__ == '__main__':
main()
|