我的问题:
在我的程序中,我有一个函数,只有当用户输入了几个值并保存在字典中时,才应该运行这个函数。我最初的想法是在函数中获取字典的长度,如果它是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”,因此它不会被重复。
如果你能告诉我哪里出错了,我会很感激的?谢谢