Python UnboundLocalError:局部变量';密码';分配前参考

Python UnboundLocalError:局部变量';密码';分配前参考,python,python-3.x,local,Python,Python 3.x,Local,例外情况: def start(): global smallq global medq global larq check = input("Would you like to change prices? Press Y to change or Press N to continue to order: ") if check == "Y": password = input("What is the password?: ")

例外情况:

def start():

    global smallq
    global medq
    global larq
    check = input("Would you like to change prices? Press Y to change or Press N to  continue to order: ")

    if check == "Y":
        password = input("What is the password?: ")
    else:
        print("Continuing to order...")
        smallq = 50
        medq = 120
        larq = 180
        order()

    if password == "please":
        quilt_price()
    else:
        print("Wrong password", "\n", "Continuing to order...")
        smallq = 50
        medq = 120
        larq = 180
        order()
回溯(最近一次呼叫最后一次):
文件“/Users/palerj09/Documents/SAC RW.py”,第128行,在
开始()
文件“/Users/palerj09/Documents/SAC RW.py”,第18行,在开始处
如果密码==“请”:
UnboundLocalError:分配前引用的局部变量“password”

如果我写“N”来回答输入,它会运行
order()
并且一切正常,除了
order()
完成后,它会出现错误。我试着将
密码
设为全局密码,但似乎不起作用。有什么想法吗?

如果输入不是
“Y”
?然后将永远不会创建
password
,因此如果password==“please”则执行
将引发错误。在您的条件语句之前,可能要执行
password=None

password是None
更像python。谢谢您的回答。我没有尝试更改输入,但我在条件之前尝试了password=none。在代码的最后,它重复了else:print(“错误的密码..等等”)语句,并重复了整个order()函数again@pynovice这是为了比较,我们定义了一个变量here@Rasp您是否正在调用
order()中的
start()
?我不知道它怎么会重复不,我没有,这就是我困惑的原因。但我刚刚发现,我只是在订单()的末尾添加了一个sys.exit()。我不知道它为什么不起作用,但它现在起作用了,所以一切都很好。谢谢你的帮助
Traceback (most recent call last):
  File "/Users/palerj09/Documents/SAC RW.py", line 128, in <module>
    start()
  File "/Users/palerj09/Documents/SAC RW.py", line 18, in start
    if password == "please":
UnboundLocalError: local variable 'password' referenced before assignment