• Python---练习:使用for循环实现用户名+密码认证


    案例:

    for循环实现用户登录

    ① 输入用户名和密码

    ② 判断用户名和密码是否正确(username='laowang',password='lw123')

    ③ 登录仅有三次机会,超过3次会报错

    思考:

    用户登陆情况有3种:

    ① 用户名错误(此时便无需判断密码是否正确) -- 登陆失败

    ② 用户名正确 密码错误 --登陆失败

    ③ 用户名正确 密码正确 --登陆成功

    现实中,也就是会有这三种情况出现,案例也都是来源于现实的。延伸生活另外 一种,比如快递小哥送快递,找楼栋和门牌号,不超时送达。楼栋找错,就不用再找门牌号了----送达失败。

    楼栋找对,门牌号找错---送达失败。楼栋找对,门牌号找对---送达成功。超过3次送达失败,提示超时啦。

    这就和之前猜数字的联系雷同,相关链接Python---练习:while循环案例:猜数字-CSDN博客

    结合上述思考以及之前猜数字相关代码 ,可以写出下列代码:


    # 定义变量,用于记录登录次数
    trycount = 0
    # 循环3次,因为超过3次就会报错
    for i in range(3):
        # 更新登录次数
        trycount += 1
        # 提示用户输入账号与密码
        username = input('请输入您的登录账号:')
        password = input('请输入您的登录密码:')
    
        # 判断用户名是否正确
        if username == 'laowang':
            # 判断密码是否正确
            if password == 'lw123':
                print('恭喜你,登录成功')
                break
            else:
                print('密码错误')
                print(f'您还有{3 - trycount}次输入机会')
        else:
            print('用户名错误')
            print(f'您还有{3 - trycount}次输入机会')

    图示:

       

    思考:

    for循环自带变更计数器,能不能利用i 的值,去代替  trycount?

    i  三次值: 0    1    2    

    图示:

    之前也说过,掌握的方法多,就可以用各种方法实现目的,比如,去上学,可以走路,可以骑单车,电动车,公交车,轿车,地铁,火车,高铁,飞机等等,都可以实现目的,唯一区别就是哪个更有意义。

    上面之所以新定义一个变量 trycount,是为了好区分,不至于搞混。

  • 相关阅读:
    [Go疑难杂症]为什么nil不等于nil
    Vue——axios的二次封装
    什么是族?全面带你了解Revit族基本知识
    串的匹配 (KPM算法)
    http头各字段含义
    java数组基础算法3.(排序:冒泡、快速排序,)
    计算机毕业设计Java学生学习评价系统(源码+系统+mysql数据库+Lw文档)
    阿里巴巴为什么建议使用BigDecimal进行浮点数运算
    redis的雪崩、穿透、击穿解析
    NetCore实战:基于html生成pdf文件案例讲解
  • 原文地址:https://blog.csdn.net/qq_42755734/article/details/134065293