对Python来说很新,试图在这里创建一个简单的登录系统(必须以这种方式完成)。我已经定义了一个user()函数,它要求输入用户名并检查其有效性。此功能通过调用用户功能开始。这是主要部分:
user()
if user in userlist:
while True:
pass = raw_input("Enter password, or X to retry: ")
if pass == 'X':
break
if userlist[user] == pass:
break
else:
print "Invalid password."
如果输入X,我希望函数循环返回以询问用户名输入。其余部分工作正常,但就目前情况而言,输入X只会结束功能并且不会将其循环回到开始状态。这是不可能的,还是可以重写它来工作?我假设我需要将user()包含在循环中,但我在尝试时遇到了各种错误。
答案 0 :(得分:4)
如果用户使用X
语句输入break
,您有意说退出循环。这就是循环退出的原因。而不是break
使用continue
。
if password == 'X':
continue
这将在顶部再次开始循环。
正如其他用户所说,您不能将pass
用作变量名称。您发布的代码显然不是您实际运行的代码。无论如何,我以为你真的使用了名字password
。
答案 1 :(得分:0)
不要使用pass作为变量名,因为它破坏了内置pass
。你想要的是
if passwd == 'X':
continue #restart at top of loop
答案 2 :(得分:0)
你必须这样做:
if password == 'X':
continue #restarts loop at while