我有以下代码,但else
分支无法正常工作
def main():
while True:
username = input ("Enter Username: ")
password = input ("Enter Password: ")
if username == 'Filip' and password == 'XD' or "Miroslav" and "plusko12":
import time
time.sleep(1)
print ("Login successful!")
logged()
else:
print("STOP")
def logged():
import time
time.sleep(1)
print ("Welcome to the Server")
#Booting now
print("Booting will begin shortly")
import time
time.sleep(3)
print("Starting.................0%")
# ... and there's more stuff in here
quit(0)
main()
答案 0 :(得分:2)
有两件事“不起作用”:
while True:
username = input ("Enter Username: ")
password = input ("Enter Password: ")
永远不会退出,因为没有停止条件。
然后是下一个if
:
if username == 'Filip' and password == 'XD' or "Miroslav" and "plusko12":
将始终评估为True,因为任何非空字符串都为True,并且它的评估如下:
if (username == 'Filip' and password == 'XD') or ("Miroslav" and "plusko12")
# |---this is always True---|
并且因为其中一个or
操作数始终为True,所以它将始终进入分支。
还有一个更一般的提示:如果你import time
在顶部没有缩进,你不需要经常重新import
它(大多数都不是必需的)。