为什么Python没有'做什么'像许多其他编程语言一样循环,例如C?
示例:在C中,我们执行while循环,如下所示:
do {
statement(s);
} while( condition );
答案 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>
请拒绝PEP。沿着这些方向的更多变化不会成为现实 语言更优雅或更容易学习。他们只是仓促一点 有些人打字,同时让其他人必须阅读/维护他们的代码 不知道这意味着什么。
答案 1 :(得分:0)
因为大家都看错了。你不想做......而你想要做......直到。
如果初始条件为真,WHILE 循环可能就是您想要的。替代方法不是 REPEAT ... WHILE 循环,而是 REPEAT ... UNTIL 循环。初始条件开始为假,然后循环重复直到为真。
明显的语法是
repeat until (false condition):
code
code
但出于某种原因,这让每个人都不知所措。