编写一个Python程序,判断登陆用户名和密码是否正确,具体要求如下:
(1) 用户名和密码保存在一个字典里;
(2) 用户输入用户名,如果用户名不在字典里,则输出提示“系统里没有查询到该用户,请重新输入用户名!”
(3) 如果用户名在字典中,就要求输入密码,如果密码输入正确,则输出提示“恭喜你!你通过了身份验证。”
(4) 如果用户名在字典中,就要求输入密码,如果密码输入不正确,则输出提示“对不起,你输入的密码错误,请再输入,你还有次机会”(表示剩余次数),然后返回重新输入密码。如果密码输入错误超过3次,则输出提示“很遗憾!你输入的密码错误已经超过3次,请明天再试或联系工作人员!”。
下面是我的代码:
zhanghu={}
n = 0
while n <= 3:
name = input("请输入用户名:")
password = input("请输入密码:")
for name in zhanghu:
if name in zhanghu:
for password in zhanghu:
if password in zhanghu:
print('恭喜你!你通过了身份验证')
break
else:
print("您的用户名或密码错误,请重新输入")
n = n + 1
if n == 3:
print("错误超过3次 请稍后重试!")
n = n + 1
刚学python真的理解不了,有没有人可以解答一下呢
可以把用户名和密码存入字典,然后在while循环里循环判断用户名和密码的匹配操作,匹配用户名和密码则用for循环遍历字典即可,如果在规则次数内输入正确则退出循环,如果没有则继续剩余次数的用户名和密码匹配操作,修改如下:
参考链接:
python字典遍历的几种方法_cleverln的博客-CSDN博客_python 字典遍历
zhanghu={"aaa":"123","bbb":"456"} #存储用户名和密码的字典
n = 0
find=0 #用于标记用户名和密码是否都输入正确,默认0为输入不正确
name = input("请输入用户名:")
password = input("请输入密码:")
while n < 3:
# https://blog.csdn.net/m0_46172703/article/details/122571847
userfind=0 #用于标记用户名是否输入正确
for key,value in zhanghu.items(): #遍历存储用户名和密码的字典
if name==key : #如果在字典找到用户名,则进行下一步密码匹配
userfind=1 #标记用户名找到
# 如果密码也匹配,则打印成功信息,并比较用户名和密码都输入正确,然后先退出遍历字典的循环
if password==value:
print('恭喜你!你通过了身份验证')
find=1
break
#如果遍历整个字典都没找到用户名,则提示没有找到用户名,并重新获取用户名和密码,并继续下次判断
if userfind==0 : #如果需要控制获取用户名的次数,可以在这里来计数变量的值再判断其值是否超过规定次数
print("系统里没有查询到该用户,请重新输入用户名!")
name = input("请输入用户名:")
password = input("请输入密码:")
continue
if find==1: # 如果找到用户名和密码,则退出while循环
break
else: #如果用户名和密码不匹配,则判断输入次数是否超过3次,没有超过则继续获取密码
n = n + 1
if n<3:
print("对不起,你输入的密码错误,请再输入,你还有"+str(3-n)+"次机会")
password = input("请输入密码:")
#如果超过3次还没有输入正确密码,则提示联系工作人员
if find==0:
print("很遗憾!你输入的密码错误已经超过3次,请明天再试或联系工作人员!")