我以为elif:是
else:
if:但它不可能使用
for - elif:
仅限
for - else: if:
在此代码中:
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)感谢到目前为止的回复,我现在的问题是:这是做这件事的方法吗?如果一行中没有任何(已知的)数据集,那么如果它是一个数据集,我想打印它?
发布于 2012-06-11 23:48:17
elif:不是一个扩展到else: if的宏,它是一个只在if: statement上下文中有效的语法元素。通常,else: if会打开一个新的if块;但是,elif:不会这样做。
发布于 2012-06-11 23:47:56
for else是一种特殊用法,与if elif结构不同。无论如何,elif在for的上下文中并没有真正的意义,因为for else的含义是“如果我们在没有中断的情况下完成了循环,就做这件事”。这是二进制逻辑。在这种二元决策的上下文中,elif没有任何意义。
发布于 2012-06-11 23:47:03
对,是这样。try .. except .. else中的else也是如此。
https://stackoverflow.com/questions/10983394
复制相似问题