我认为 elif: 是
else:
if:
但无法使用
对于 - ELIF:
只
对于 - 否则:如果:
在此代码中:
for line in source:
change_next = False
for dataset,artnr,revision in datasets:
if dataset in line:
change_next = True
print " ** " + dataset + " found"
datasets.remove((dataset,artnr,revision))
break
else:
if line.startswith("DstID:"):
print line.replace("DstID:","").rstrip()
if change_next and "Partno:" in line:
destination.write("Partno: " + artnr + "n")
print "Partno: " + artnr
elif change_next and "Revno:" in line:
destination.write("Revno:" + revision + "n")
print "Revno:" + revision
else:
destination.write(line)
感谢您到目前为止的回复,我现在的问题是:这是这样做的方法吗? 如果一行中没有任何(已知)数据集,那么如果它是数据集,我想打印它?
elif:
不是一个扩展到else: if
的宏,它是一个语法元素,仅在if:
语句的上下文中有效。通常,else: if
会打开一个新的if
块;但是,elif:
不会这样做。
for
else
是一种特殊情况用法,与if
elif
结构不同。 无论如何,elif
在for
的上下文中并没有真正的意义,因为for
else
的含义是"如果我们完成了循环而没有中断,那就做这件事"。 这是二进制逻辑。 在这个二元决策的背景下,elif
没有意义。
正确。 try .. except .. else
中的else
也是如此.
你引用的"else"与"for"命令相关联,而不是与"if"命令相关联。"Elif"只有在与"if"命令一起使用时才有意义。
使用"for"命令,只有当"for"块没有被"break"命令过早结束时,才会执行"else"块,参见第4.4段。