python中unboundlocalerror是什么意思-Python错误UnboundLocalError:在赋值之前引用了局部变量...

我的问题:

在我的程序中,我有一个函数,只有当用户输入了几个值并保存在字典中时,才应该运行这个函数。我最初的想法是在函数中获取字典的长度,如果它是0(意味着它是空的),那就表示这些值还没有被输入。但是,当我运行代码时,我得到了这个错误"UnboundLocalError:localvariable"dictionary"referenced before assignment"。另一方面,当长度大于1(值已经输入)时,代码运行得很好。相关代码如下:def displayValues(data):

if len(data) == 0:

print("No Values Found - Please Enter Values")

Main()

elif len(data) != 0:

print()

print("-"*77)

for key,value in sorted(data.items()):

print(key,":",value)

print("-"*77)

time.sleep(5)

print()

def Main():

while True:

choice = displayMenu()

if choice == 1:

dictionary = setValues()

elif choice == 2:

displayValues(dictionary)

elif choice == 3:

runModel(dictionary)

elif choice == 4:

exportData()

elif choice == 5:

quit()

Main()

请注意,我确信返回dictionary变量中保存的值的setValues()函数的作用就像字典的len不是0一样代码运行良好。另外,我没有在代码中的任何地方使用变量名“dictionary”,因此它不会被重复。

如果你能告诉我哪里出错了,我会很感激的?谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值