UnboundLocalError: local variable 'html' referenced before assignment
1 2 3 4 5 6 7 8 9 10 11 12
| html += '''
<table style="width:100%">
<tr align="center">
<th style="width:10%">Metrics</th>
'''
def get_bus_metrics (met,name):
for i in met:
html += '<th>' + str(i) + '</th>'
html += '''</tr>'''
html += '''<tr><th>''' + name +'''</th>'''
get_bus_metrics (g1,'R') |
UnboundLocalError: local variable 'html' referenced before assignment
我得到这个错误。有人能告诉我我这里遗漏了什么,为什么会出现上述错误吗?
- 你的意思是在第一行使用+=吗?如果尚未分配HTML,而您试图将其添加到HTML中,则会出现错误。
- 您正在为python 2.7和3.6创建可交叉使用的代码?如果没有,请只标记您使用的版本。
- @Strava HTML需要一个和标记,然后
标记才有意义。第1行可能是复制和粘贴问题。问题更可能是,代码在全局范围内使用html,并试图在get_bus_metric()函数中修改它,而不声明它是全局的,也不提供它作为参数-在这里,+=命中
- @帕特里卡特纳我刚对你的密码做了回应,你能看看吗?我无法将函数输出到HTML代码
(P)Fix the EDOCX1 penographical 0 original if the variable was not used before and provide it to the function:(p)字母名称(P)Output:(p)字母名称(P)Or(less preferable)declaration it global:(p)字母名称(P)Tip 1:使用Str.Format(……)or F-Strings/PEP-0498/逐字记录内插插(p)(P)Tip 2:Adding to strings in a loop is wasteful-it constructs lots of intermediate strings that are thrown away.使用一份清单(p)字母名称(P)土库(p)
- STR.Format()-Works for 2.7
- PEP-0498 String Interpol Works for 3.6+
- 关于范围规则的简要说明?如果你想读关于范围
- def get_bus_metrics(value,name,html_table,sym=none):for i in value:lol.append(':,.0f'。format(i))html_table+='''
'''+name+''''
'''for i in lol:if sym is not none:html_table+='
| '+'''+'$'+str(i)+'
| 'else:html_table+='
| '+''+str(i)+'
| 'html_table+=''
|
''get_bus_metrics(g2,'row',html_table,1)hey patrick any thought what I am missing here,row is not adding in the html code
- @Ericdsilva注释不适用于代码。您的函数使用lol,而不首先定义它-在顶部尝试lol = []。注释中缺少整个缩进。您不会从函数返回构造的字符串。如果您有其他问题,请发布第二个问题(如果没有实际问题),否则请编辑并添加到此问题。不要在一个问题中问不同的问题,因为这会使答案的可重用性变差(例如,问苹果,得到苹果的答案,再问南瓜-PPL搜索南瓜,得到许多苹果的答案-类似的事情)。
(P)字母名称(p)(P)在变量EDOCX1(英文)3未被发现之前,尚未开始。(p)(P)自从EDOCX1音符3音符你就不能表演5音符(p)