2016-05-17 8 views
7

Warum hat Python keine "Do While" -Schleife wie viele andere Programmiersprache, wie C?Python: Warum gibt es keine while-Schleife in Python

Beispiel: In der C haben wir tun while-Schleife wie folgt:

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

Stand * Abgelehnt *: https://www.python.org/dev/peps/pep-0315/ –

+2

Mögliche Duplikat [in Python eine do-while-Schleife emulieren?] (Http: // Stackoverflow. com/questions/743164/emulate-a-do-while-schleife-in-python) – miradulo

+0

Zur Erinnerung: Der Link von Martijn sieht nicht sehr meinungsorientiert aus: "Nachfolgende Bemühungen, die PEP im April 2009 wiederzubeleben nicht Treffen mit Erfolg, weil keine Syntax entstand, die könnte konkurrieren ... " –

Antwort

15

Es gibt keine do...while Schleife ist, weil es keine nette Art und Weise ist eine zu definieren, die in der von jedem anderen verwendet statement: indented block Muster passt Python zusammengesetzte Aussage. Solche Vorschläge, solche Syntax hinzuzufügen, haben nie eine Übereinstimmung erreicht. Auch

ist es wirklich einen Notwendigkeit ein solches Konstrukt zu haben, nicht, wenn Sie gerade tun:

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

und haben genau die gleiche Wirkung wie eine C do { .. } while condition Schleife.

Siehe PEP 315 -- Enhanced While Loop:

Abgelehnt [...] weil keine Syntax herausgestellt, dass mit folgenden Form konkurrieren könnte:

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

Eine Syntax Alternative zu dem in dem PEP vorgeschlagen wurde gefunden für eine grundlegende Do-While-Schleife, aber es hat wenig Unterstützung, weil die Bedingung war an der Spitze:

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

oder, wie Guido van Rossum put it:

den PEP Bitte abzulehnen. Weitere Variationen entlang dieser Linien werden die Sprache nicht eleganter oder einfacher zu lernen machen. Sie würden nur ein paar hastige Leute speichern, die eintippen, während sie andere machen, die ihren Code sich wundern müssen, was es bedeutet.

Verwandte Themen