繁体   English   中英

While循环以及如何在函数中停止循环

[英]While loop and how to stop it in a function

我在执行此数据验证程序时遇到麻烦。 由于某种原因,我在这里的while循环遇到麻烦,因为它会无限期地继续运行。 其他while循环可以在我的代码中运行,但是这里的功能没有...

def menu():                                                                                             
    pick = None
    while pick != "q" or pick != "Q":
        print """
    \n

    Welcome to my password validation program.

    1 - New Account
    2 - Login
    q - Quit

    """
    pick = raw_input("What do you want to do?:  ")
    # Quit
    if pick == "q":
        print "\t   Thanks for coming Good-bye."
        raw_input("\nPress any key to exit")
    # New Account
    elif pick == "1":
        main()                                                                                      
    # Login
    elif pick == "2":
        if ps == 100:
            login()                                                                                 
        else:
            print "Sorry no password has been set. please create a new account."
    else:
        print "Sorry, but", pick, "isn't a valid choice."

menu()

如果代码使用错误的方式,那么您的答案都是正确的。 @jonrsharpe @tdelaney

   def menu():
        print \
        """
        \n

        Welcome to my password validation program.

        1 - New Account
        2 - Login
        q - Quit

        """

        pick = None
        pick = raw_input("What do you want to do?:  ")
        # Quit
        if pick == "q":
            print "\t   Thanks for coming Good-bye."
            raw_input("\nPress any key to exit")
        # New Account
        elif pick == "1":
            main()                                                                                      
        # Login
        elif pick == "2":
            if ps == 100:
                login()                                                                                 
            else:
                print "Sorry no password has been set. please create a new account."
        else:
            print "Sorry, but", pick,"isn't a valid choice."

    menu()

这里的问题是您的缩进,
做这个:

def menu():                                                                                             
    pick = None
    while pick != "q" or pick != "Q":
        print """
        \n

        Welcome to my password validation program.

        1 - New Account
        2 - Login
        q - Quit

        """
        pick = raw_input("What do you want to do?:  ")
        # Quit
        if pick == "q":
            print "\t   Thanks for coming Good-bye."
            raw_input("\nPress any key to exit")
        # New Account
        elif pick == "1":
            main()
        # Login
        elif pick == "2":
            if ps == 100:
                login()
            else:
                print "Sorry no password has been set. please create a new account."
        else:
            print "Sorry, but", pick, "isn't a valid choice."

menu()

pick参数的值分配必须在while循环范围内。 另一件事是未定义mainlogin函数,因此请确保它在您的本地范围内或导入到该范围。

我认为您在此处发布代码时可能会出现一些复制/粘贴错误...如果不是, print """行将继续打印,只要pick不等于q或Q。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM