问题描述:想用python程序实现一个登陆验证用户名密码的效果,但是我修改前的python代码与我想象中的不太一样,修改后的python代码与我预想的执行结果(红色代码最后输出)一致,但是却不知其所以然,求大神解答
运行环境:Windows,pycharm
user_n = "user"
user_p = "123"
bit = False
for i in range(3):
user_name = str(input("请输入账户名:"))
user_password = str(input("请输入密码:"))
if user_name == user_n and user_password == user_p:
bit = True
print("登录成功,欢迎回来")
exit()
else:
print("用户名密码错误,请重新输入")
if not bit:
exit("尝试次数超过限制")
user_n = "user"
user_p = "123"
for i in range(3):
user_name = str(input("请输入账户名:"))
user_password = str(input("请输入密码:"))
if user_name == user_n and user_password == user_p:
print("登录成功,欢迎回来")
exit()
else:
print("用户名密码错误,请重新输入")
else:
exit("尝试次数超过限制")
你的第一段代码中,你首先定义了一个布尔型 也就是bit = False,然后程序进入for循环(for循环要进行3次),其中在每一次循环的时候他都要判断
是否输入了正确的用户名以及秘密,很显然你的判断中的意思是在三次判断中只要有一次 user_name == user_n and user_password == user_p
即为登陆成功 而且 bit = True,如果没有判断出的话,bit 还是等于False,运行完for循环后再运行if not bit: exit("尝试次数超过限制")这句
因此,得出结果应该和你的预期一样,然后我还要提醒楼主,exit("尝试次数超过限制")应该为print(‘尝试次数超过限制’)[注意中英文符号],否则会
程序执行完三遍后会闪退!