如何在Python中为函数添加重试选项?

时间:2015-03-27 23:19:35

标签: python

对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()包含在循环中,但我在尝试时遇到了各种错误。

3 个答案:

答案 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