未绑定本地错误-Python-文件I/O-字典
我已经成功创建了5个不同的函数。这些函数添加到字典,查找字典中的值及其键,从字典中删除值或键,将字典保存到文件,最后将文件读回给我。现在我的目标是创建一个主函数,允许用户使用我创建的这些函数添加、删除、查找或清除字典,直到用户决定结束程序。我所有的函数都能工作,但我总是在程序的所有功能中得到相同的错误。错误如下:未绑定本地错误-Python-文件I/O-字典,python,file-io,dictionary,Python,File Io,Dictionary,我已经成功创建了5个不同的函数。这些函数添加到字典,查找字典中的值及其键,从字典中删除值或键,将字典保存到文件,最后将文件读回给我。现在我的目标是创建一个主函数,允许用户使用我创建的这些函数添加、删除、查找或清除字典,直到用户决定结束程序。我所有的函数都能工作,但我总是在程序的所有功能中得到相同的错误。错误如下:UnboundLocalError:赋值前引用的局部变量“diction”。我将粘贴下面的代码。有什么想法、建议或提示吗 def primary(): diction = {}
UnboundLocalError:赋值前引用的局部变量“diction”
。我将粘贴下面的代码。有什么想法、建议或提示吗
def primary():
diction = {}
readit()
decision = raw_input('Which would you like to choose: add? find? remove? clear? or end? ')
if decision == 'add':
key = raw_input('Which would you like to add? ')
value = raw_input('What would you like to link to your new addition? ')
addit(diction, key, value)
elif decision == 'find':
key = raw_input('What would you like to find? ')
findit(diction, key)
elif decision == 'remove':
key = raw_input('What would you like to have removed or edited? ')
value = raw_input('Which value would you like to remove? ')
removeit(diction, key, value)
elif decision == 'clear':
diction = []
elif decision == 'end':
saveDB()
if decision == 'add' or 'find' or 'remove' or 'clear':
primary()
elif decision == 'end':
exit
根据您的代码,在if语句之前没有定义措辞。这意味着,虽然是的,您确实在一个ELIF中定义了它,但它在其他ifs中不存在
您需要在main中初始化diction,使其全局可用,或者在ifs和elifs之前的primary()顶部初始化diction。diction在哪里初始化?你不应该先这样做吗?请注意,最后一个if应该是('add'、'find'、'remove'、'clear')中的
if decision
-你所做的不会像你所想的那样。我如何让它重复,直到选择了end,而不必每次都经过primary()?因为每次都会设置diction={}。即使我的readit()函数在我的primary()之前返回diction?@user3014014 readit()没有被设置为等于任何值,您的意思是键入diction=readit()?