首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for - else vs for elif

for - else vs for elif
EN

Stack Overflow用户
提问于 2012-06-11 23:44:48
回答 4查看 8.5K关注 0票数 10

我以为elif:是

代码语言:javascript
复制
else:
     if:

但它不可能使用

for - elif:

仅限

for - else: if:

在此代码中:

代码语言:javascript
复制
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)

感谢到目前为止的回复,我现在的问题是:这是做这件事的方法吗?如果一行中没有任何(已知的)数据集,那么如果它是一个数据集,我想打印它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-11 23:48:17

elif:不是一个扩展到else: if的宏,它是一个只在if: statement上下文中有效的语法元素。通常,else: if会打开一个新的if块;但是,elif:不会这样做。

票数 13
EN

Stack Overflow用户

发布于 2012-06-11 23:47:56

for else是一种特殊用法,与if elif结构不同。无论如何,eliffor的上下文中并没有真正的意义,因为for else的含义是“如果我们在没有中断的情况下完成了循环,就做这件事”。这是二进制逻辑。在这种二元决策的上下文中,elif没有任何意义。

票数 10
EN

Stack Overflow用户

发布于 2012-06-11 23:47:03

对,是这样。try .. except .. else中的else也是如此。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10983394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档