为什么python中没有while循环

时间:2016-05-17 16:18:14

标签: python loops do-while

为什么Python没有'做什么'像许多其他编程语言一样循环,例如C?

示例:在C中,我们执行while循环,如下所示:

do {
   statement(s);
} while( condition );

2 个答案:

答案 0 :(得分:50)

没有do...while循环,因为没有很好的方法来定义适合每个其他Python复合语句使用的 statement: indented block 模式的循环。因此,添加此类语法的提议从未达成一致。

也没有需要来拥有这样的构造,而不是在你可以做的时候:

while True:
    # statement(s)
    if not condition:
        break

并且与C do { .. } while condition循环具有完全相同的效果。

请参阅PEP 315 -- Enhanced While Loop

  

拒绝[...]因为没有出现可能的语法       与以下形式竞争:

    while True:
        <setup code>
        if not <condition>:
            break
        <loop body>
     

找到了PEP中提出的语法替代语法      一个基本的do-while循环,但它得到的支持很少,因为      条件是最重要的:

    do ... while <cond>:
        <loop body>

或,Guido van Rossum put it

  

请拒绝PEP。沿着这些方向的更多变化不会成为现实   语言更优雅或更容易学习。他们只是仓促一点   有些人打字,同时让其他人必须阅读/维护他们的代码   不知道这意味着什么。

答案 1 :(得分:0)

因为大家都看错了。你不想做......而你想要做......直到。

如果初始条件为真,WHILE 循环可能就是您想要的。替代方法不是 REPEAT ... WHILE 循环,而是 REPEAT ... UNTIL 循环。初始条件开始为假,然后循环重复直到为真。

明显的语法是

repeat until (false condition):
  code
  code

但出于某种原因,这让每个人都不知所措。