为什么Python甚至在声明全局变量后给我一个可变范围错误?

时间:2017-12-10 11:22:21

标签: python function variables scope global-variables

我是Python初学者,我正在尝试创建一个基本程序,用户通过输入用户名,密码并确认密码来创建帐户。我在这个网站上看到过其他问题和答案,但它们都不适合我。以下是我的代码(我使用的是Python 2.7):

global username, password, surePassword

def createAcc():
    print "Welcome! Create an account below: "
    username = raw_input("Select a username: ")
    password = raw_input("Select a password: ")
    surePassword = raw_input("Confirm your password: ")
    confirmPassword()

def confirmPassword():
    if surePassword == password:
        print "Account created successfully!"
    else:
        surePassword = raw_input("Error: Incorrect confirmation. Re-enter password: ")
        confirmPassword()

createAcc()

当我运行此程序时,我可以输入用户名和密码。但是,一旦我确认密码,就会出现以下错误:

Traceback (most recent call last):
 line 17, in <module>
    createAcc()
 line 8, in createAcc
    confirmPassword()
 line 11, in confirmPassword
    if surePassword == password:
UnboundLocalError: local variable 'surePassword' referenced before assignment

该程序应该只是告诉我我的确认密码是否正确,如果不正确,请告诉我重新输入密码,直到它正确为止。感谢任何帮助,提前谢谢!

0 个答案:

没有答案