python判断用户名账号密码

编写一个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次,请明天再试或联系工作人员!")
            


img