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