Python中文
首页
教程
问答
标签
搜索
登录
注册
Python错误UnboundLocalError:在赋值之前引用了局部变量
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我的问题: 在我的程序中,我有一个函数,只有当用户输入了几个值并保存在字典中时,才应该运行这个函数。我最初的想法是在函数中获取字典的长度,如果它是0(意味着它是空的),那就表示这些值还没有被输入。但是,当我运行代码时,我得到了这个错误'UnboundLocalError:localvariable'dictionary'referenced before assignment'。另一方面,当长度大于1(值已经输入)时,代码运行得很好。相关代码如下:</p> <pre><code>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() </code></pre> <p>请注意,我确信返回dictionary变量中保存的值的setValues()函数的作用就像字典的len不是0一样代码运行良好。另外,我没有在代码中的任何地方使用变量名“dictionary”,因此它不会被重复。 如果你能告诉我哪里出错了,我会很感激的?谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在使用字典之前,将字典初始化为空dict(<code>{}</code>)。然后您可以执行<code>if dict</code>来检查它是否包含任何数据。这样您就可以确保<code>dictionary</code>在初始化之后的任何时候都有一个值。在</p> <pre><code>def Main(): dictionary = {} while True: </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python中两个字典的交集
8 回答
python中两个字符串上的异或操作数?
3 回答
Python中两个字符串中的类似句子
9 回答
Python中两个字符串之间的Hamming距离
5 回答
python中两个字符串之间的匹配模式
6 回答
python中两个字符串之间的按位或
7 回答
python中两个字符串之间的数据(字节)切片
10 回答
python中两个字符串之间的模式
3 回答
python中两个字符串作为子字符串的区别
10 回答
Python中两个字符串元组的比较
5 回答
Python中两个字符串列表中的公共字符串
5 回答
python中两个字符串的Anagram测试
10 回答
Python中两个字符串的正则匹配
2 回答
python中两个字符串的笛卡尔乘积
4 回答
Python中两个字符串相似性的比较
4 回答
python中两个字符串语义相似度的求法
9 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
4 回答
Python中两个对数方程之间的插值和平滑数据
9 回答
Python中两个对象之间的And/Or运算符
8 回答
python中两个嵌套字典中相似键的和值
4 回答