其他分支未执行

时间:2017-04-11 20:51:19

标签: python python-3.x

我有以下代码,但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()

1 个答案:

答案 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它(大多数都不是必需的)。