[英]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循环范围内。 另一件事是未定义main
和login
函数,因此请确保它在您的本地范围内或导入到该范围。
我认为您在此处发布代码时可能会出现一些复制/粘贴错误...如果不是, print """
行将继续打印,只要pick不等于q或Q。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.