请在Python2.7中找到下面的代码块。你知道吗
for i in range(len(p_routes)):
if len(p_routes[i]) > 2 :
if p_routes[i][2] == 'No Backup':
K = K + 1
for z in range(len(p_routes[i])):
nbup.write(K + 1 , z , p_routes[i][z])
elif p_routes[i][0][0] == 'E' :
L = L + 1
for z in range(len(p_routes[i])):
ex.write(L, z , (p_routes[i][z])
elif p_routes[i][0][0] == 'G':
M = M + 1
for z in range(len(p_routes[i]))
gh.write(M ,z, p_routes[i][z])
else len(p_routes[i]) < 2:
pass
print "\nFor some reason. "
嗯,我的语法错误是elif p_routes[i][0][0] == 'G':
。我不明白为什么会出现这个错误,因为我相信这行没有语法错误。你知道吗
ex
和gh
是在此代码块之前创建的两个excel工作表变量。p_routes
是2度列表。格式类似于p_routes = [['prov1' , 'address1' , 'No Backup'] , ['prov2', 'address2', 'Back1', 'Back2' ]]
您可能已经理解了,内部列表长度是一个可变的大小。如有任何建议,将不胜感激。很抱歉问了这个愚蠢的问题,但是我做了大量的搜索,并以多种方式重新格式化了我的if..else
块。但每次我都会犯这个错误。你知道吗
顺便说一下,前面的语法错误是L = L + 1
。好笑!然后我通过L = int(L)
改变了L的类型。现在,这个错误消失了。你知道吗
对于语法错误,最好看一看前一行,以确保它也是正确的。由于错过了结束语
)
,Python一直在下一行中寻找它。你知道吗有很多地方可以让代码更干净一些。例如,当您可以在列表本身上迭代时,不必继续使用
range(len(x))
。你知道吗希望您能发现以下想法很有帮助:
注意,
if x > 2
后跟一个else
,else表示值是<= 2
。你知道吗也可以按如下方式向变量添加一个:
L += 1
,这是L = L + 1
的缩写。你知道吗备注:
永远不要忘记用
)
关闭(
Else将执行
if none of the above case condition was right
,因此不应该给Else语句任何条件别忘了
:
在if else for.....
代码更改:
首先,正如Vignesh所指出的,您的错误实际上在前一行,因为您忘记关闭括号()
其次,if、elif、else结构的else子句不需要检查。 这是我不久前制作的一个视频,介绍了python linked to relevant time中选择的工作原理
(可能不相关) 还要记住当前的逻辑,如果:
len(p_routes[i])
是2会发生什么?您当前只检查它是小于2还是大于2。你知道吗相关问题 更多 >
编程相关推荐