V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
petelin
V2EX  ›  问与答

发现 python 语法有个奇特的地方, if , else 中间能加一个 for 循环?

  •  
  •   petelin · 2016-06-06 10:10:49 +08:00 · 2500 次点击
    这是一个创建于 2886 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a = 0
    if a == 1:
        print(1)
    for i in range(1):
        a = 2
    else:
        print(333)
    

    看 simplehttpserver 的时候发现的,中间那个 for 循环是怎么回事?有大大知道吗?

    11 条回复    2016-06-06 15:17:59 +08:00
    tabris17
        1
    tabris17  
       2016-06-06 10:14:06 +08:00
    卧槽,我都懵逼了。

    LZ 知道 python 的 for else 语法吗?
    fcicq
        2
    fcicq  
       2016-06-06 10:14:39 +08:00
    你发现的是 for... else... 结构. 不是 if... else...
    Trim21
        3
    Trim21  
       2016-06-06 10:15:16 +08:00 via Android
    @tabris17 这里的缩进有点奇怪?
    Trim21
        4
    Trim21  
       2016-06-06 10:15:55 +08:00 via Android
    @Trim21..我看错了。。。
    jugelizi
        5
    jugelizi  
       2016-06-06 10:20:01 +08:00
    看注册日期原来就是想搞个大新闻
    for 循环不异常结束都会执行 else
    和上面的 if 没关系
    基本语法不看完就写代码
    clino
        6
    clino  
       2016-06-06 10:22:09 +08:00
    用了这么多年才知道 for 后面能跟 else,从来都是在 break 前处理的...
    Cynic222
        7
    Cynic222  
       2016-06-06 10:22:18 +08:00
    for... else...
    while... else...
    Mutoo
        8
    Mutoo  
       2016-06-06 10:31:43 +08:00
    python 的 for else 还是挺方便的,其它语言得 for + bool + if 多写三四句
    yelite
        9
    yelite  
       2016-06-06 10:35:15 +08:00
    觉得换一个关键字会更好,用 else 看着不顺眼
    petelin
        10
    petelin  
    OP
       2016-06-06 11:09:46 +08:00
    @tabris17
    @fcicq
    @jugelizi
    @Cynic222
    for else 基础看过,从来没用过,大早上懵逼了。。。谢谢各位
    yongzhong
        11
    yongzhong  
       2016-06-06 15:17:59 +08:00
    完美的解决了某些需要 Boolean flag 的语言的问题....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   781 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:17 · PVG 05:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.