2017-02-21 1 views
-1

Was ist der beste Weg, um eine While-Schleife in Python mitten in der Anweisung zu stoppen? Ich bin mir bewusst, break, aber ich dachte, dies wäre eine schlechte Praxis.Anhalten einer while-Schleife in der Mitte - Python

Zum Beispiel in diesem Code unten, ich will nur das Programm einmal drucken, nicht zweimal ...

variable = "" 
while variable == "" : 
    print("Variable is blank.") 

    # statement should break here... 

    variable = "text" 
    print("Variable is: " + variable) 

Können Sie helfen? Danke im Voraus.

+3

Was über das Ersetzen der 'while' mit einem' if'? – Elmex80s

+4

Warum die Verwendung von 'break' ist eine _bad Praxis here_? – Arman

Antwort

5

break ist in Ordnung, obwohl es normalerweise bedingt verwendet wird. Verwendet bedingungslos, es stellt sich die Frage, warum eine while Schleife überhaupt verwendet wird:

# Don't do this 
while condition: 
    <some code> 
    break 
    <some unreachable code> 

# Do this 
if condition: 
    <some code> 

bedingt verwendet, bietet es eine Möglichkeit, die Schleifenbedingung zu testen (oder einen völlig separaten Zustand) früh:

while <some condition>: 
    <some code> 
    if <other condition>: 
     break 
    <some more code> 

Es wird oft mit einer Endlosschleife, die in anderen Sprachen, fand die do-while Aussage zu simulieren, so dass Sie die Schleife ausgeführt mindestens einmal garantieren können.

while True: 
    <some code> 
    if <some condition>: 
     break 

statt

<some code> 
while <some condition>: 
    <some code>