栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python练手小项目(11)用户名密码验证的初步探索

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python练手小项目(11)用户名密码验证的初步探索

1.先做一个基础版:用字符串存储一个密码,与用户输入的字符进行匹配,用for循环限制输入次数为3次,完成后打印验证结果。


mima='123456'
for i in range(3):
    password=input('请输入六位数字密码:')
    if password==mima:
        print('密码正确。')
        break
    else:
        print('密码错误,请重新输入。')
else:
    print('3次机会已用完。')

2.改为用字典存储多组用户名和密码,用户输入的用户名和密码与字典进行比对验证,只有用户名和密码都匹配时才能验证通过,并且改为用while循环来限次数。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
while time1<3:
    xingming=input('请输入用户名:')
    mima1=input('请输入6位数字密码:')
    if xingming not in mimaben.keys():
        print('用户名不存在,请重新输入。')
    elif mima1==mimaben[xingming]:
        print('密码正确。')
        break
    else:
        print('密码错误,请重新输入。')
    time1=time1+1
else:
    print('3次机会已用完。')

3.加入一个小功能:提示用户密码错在哪里,是长度不对还是格式不对,并且提示已经用了几次机会。

格式不对的意思是用户输入的是非数字密码,长度不对的意思是密码长度不是6位,这两个条件限制了用户必须输入6位数字密码才行。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
while time1<3:
    xingming=input('请输入用户名:')
    mima1=input('请输入6位数字密码:')
    if xingming not in mimaben.keys():
        print('用户名不存在,请重新输入。')
    elif mima1==mimaben[xingming]:
        print('密码正确。')
        break
    else:
        if len(mima1)!=6:
            print(f'密码长度错误,已使用{time1+1}次机会,共3次,请重新输入。')
        elif mima1.isdecimal()==False:
            print(f'密码格式错误,已使用{time1+1}次机会,共3次,请重新输入。')
        else:
            print((f'密码不对哦,已使用{time1+1}次机会,共3次,请重新输入。'))
    time1=time1+1
else:
    print('3次机会已用完。')

4.继续完善,在以上的基础上,加入一个tongguo变量并初始化为false,把以上的所有while循环内容嵌套在一个新的while循环内,在验证通过时把tongguo重新赋值为true,结束所有循环。通过这个方法把用户名和密码的验证分开,先验证用户名,用户名正确后再输入和验证密码,过程同上。


mimaben={'张三':'123456','李四':'112233','王五':'666666'}
time1=0
tongguo=False
while tongguo==False:
    name1=input('请输入用户名:')    
    if name1 not in mimaben.keys():
        print('用户名不存在,请重新输入:')
    else:
        while time1<3:
            mima1=input('请输入6位数字密码:')
            if mima1==mimaben[name1]:
                print(f'恭喜,验证通过,共用{time1+1}次机会。')
                tongguo=True
                break
            else:
                if len(mima1)!=6:
                    print(f'密码长度错误,已使用{time1+1}次机会,共3次,请重新输入。')
                elif mima1.isdecimal()==False:
                    print(f'密码格式错误,已使用{time1+1}次机会,共3次,请重新输入。')
                else:
                    print((f'密码不对哦,已使用{time1+1}次机会,共3次,请重新输入。'))
            time1=time1+1
        else:
            print('验证失败,3次机会已用完。')
            break

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号