Also, in Python (obwohl ich glaube, es kann in viele Sprachen angewendet werden), finde ich mich mit so etwas wie dies oft:kleine Code-Redundanz innerhalb while-Schleifen (nicht sauber fühlen)
the_input = raw_input("what to print?\n")
while the_input != "quit":
print the_input
the_input = raw_input("what to print?\n")
Vielleicht bin ich zu wählerisch, aber ich mag es nicht, wie die Zeile the_input = raw_input("what to print?\n")
wiederholt werden muss. Es verringert Wartbarkeit und Organisation. Aber ich sehe keine Problemumgehungen, um den doppelten Code zu vermeiden, ohne das Problem weiter zu verschlimmern.
while ((the_input=raw_input("what to print?\n")) != "quit") {
print the_input
}
Dies ist definitiv nicht Pythonic und Python nicht einmal erlauben, für die Zuweisung innerhalb der Schleife Bedingungen AFAIK: In einigen Sprachen, konnte ich so etwas schreiben.
Dieser gültiger Code behebt die Redundanz,
while 1:
the_input = raw_input("what to print?\n")
if the_input == "quit":
break
print the_input
Aber fühlen entweder nicht ganz. Die while 1
impliziert, dass diese Schleife für immer ausgeführt wird; Ich benutze eine Schleife, aber gebe ihr einen falschen Zustand und lege den echten hinein.
Bin ich zu wählerisch? Gibt es einen besseren Weg, dies zu tun? Vielleicht gibt es dafür ein Sprachkonstrukt, von dem ich nichts weiß?
Ich denke, die erste Form ist absolut akzeptabel. –
Dies ist ein gängiges Muster namens [Schleife und eine Hälfte] (http://www.cs.duke.edu/~ola/patterns/plopd/loops.html#loop-and-a-half). –