免责声明:我对python非常缺乏经验(如果您无法通过问题回答)
我在您输入给定密码的地方做了这个基本代码。输入后,您可以进行测试或更改密码。每个选择都会导致不同的对话选项,依此类推(我使用了很多if:else and while:语句)。 但是,对于我的代码,正确回答测试问题后,它将显示“错误”消息和“您正确回答”消息。然后,当再次登录时,您必须输入密码TWICE才能注册您的输入。有人知道怎么修这个东西吗?我正在使用Pycharm btw
代码:
k = 1
t = 1
s = 1
passcodes = ["stanley"]
while s == 1:
while k == 1:
ans = input("Enter your password: ")
if ans in passcodes:
while t <= 10:
print("Logging in.. [" + "*" * t + (10 - t) * " " + "]")
t = t + 1
if t > 10:
print("Logged in")
k = 2
else:
print("ACCESS DENIED")
while k == 2:
ans2 = input("Take test(1) or change password(2)? ")
if ans2 == "1":
ans3 = input("What is the square root of 4? ")
if ans3 == "2":
print("Correct. Thanks for participating!")
k = 1
t = 1
if ans3 == "-2":
print("Correct. Thanks for participating!")
k = 1
t = 1
else:
print("Wrong answer. Thanks for participating!")
k = 1
t = 1
if ans2 == "2":
change = input("New password: ")
passcodes.clear()
passcodes.append(change)
print("New password " + change + " saved. Please sign back in.")
k = 1
t = 1
ans = input("Enter your password: ")
else:
print("Signing out..")
错误消息:
答案 0 :(得分:0)
嗨,您在if语句的顺序中有一个小错误 当ans3为2时,程序会重新检查ans3是否为-2,并且发现它为false,因此它将在else语句中运行代码以解决此问题,您只需要运行程序else即可,以防万一两个if语句为false 这是通过在“ if ans3 ==“ -2”:“行中使用elif语句来实现的: 它应该是“ elif ans3 ==“ -2”:“