案例:
用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,是为了好区分,不至于搞混。