Почему нет цикла do while в python

почему Python не имеет цикла "do while", как и многие другие языки программирования, такие как C?

пример : в C у нас есть цикл while, как показано ниже:

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

1 ответов


нет do...while цикл, потому что нет хорошего способа определить тот, который вписывается в statement: indented block шаблон, используемый каждым другим составным оператором Python. Поскольку такие предложения по добавлению такого синтаксиса никогда не достигали согласия.

и на самом деле нет нужно иметь такую конструкцию, а не когда вы можете просто сделать:

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

и имеют тот же эффект, что и C do { .. } while condition петли.

посмотреть PEP 315 -- расширенные While Loop:

отклонено [...] потому что не появился синтаксис, который мог бы соревнуйтесь со следующей формой:

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

найдена синтаксическая альтернатива предложенной в ОПТОСОЗ основной цикл do-while, но он получил небольшую поддержку, потому что условие было вверху:

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

или как Гвидо ван Россум сказал это:

пожалуйста, отклоните PEP. Больше вариации в этом направлении не сделают язык более элегантный или более простой в освоении. Они просто спасут несколько поспешных люди некоторые набрав, делая другие, которые должны читать / поддерживать свой код интересно, что это значит.