def play_game(word_list):
hand = deal_hand(HAND_SIZE) # random init
while True:
cmd = raw_input('Enter n to deal a new hand, r to replay the last hand, or e to end game: ')
if cmd == 'n':
hand = deal_hand(HAND_SIZE)
play_hand(hand.copy(), word_list)
print
elif cmd == 'r':
play_hand(hand.copy(), word_list)
print
elif cmd == 'e':
break
else:
print "Invalid command."
Während WAS ist wahr?
Ich denke, "solange wahr ist" ist eine Abkürzung, aber wofür? Während der Variablen 'Hand' ein Wert zugewiesen wird? Und was ist, wenn der Variablen 'Hand' kein Wert zugewiesen wird?
True
ist kein Alias für1
. Obwohl in vielen Sprachen1
die Wahrheit im booleschen Kontext bewertet.True
ein Alias für1
, nein? Obwohl ja, in den neuesten Versionen von Python gibt es einen echten booleschen Typ.__builtin__
Modul wurden zwei neue Konstanten hinzugefügt , True und False. (True und False wurden dem Build hinzugefügt -ins in Python 2.2.1, aber die 2.2.1-Versionen werden einfach auf ganzzahlige Werte von 1 und 0 gesetzt und sind kein anderer Typ.) ".Antworten:
while True
bedeutet Schleife für immer. Diewhile
Anweisung nimmt einen Ausdruck und führt den Schleifenkörper aus, während der Ausdruck (boolean) "true" ergibt.True
wertet immer als boolesches "wahr" aus und führt somit den Schleifenkörper auf unbestimmte Zeit aus. Es ist eine Redewendung, an die Sie sich irgendwann gewöhnen werden! Die meisten Sprachen, denen Sie wahrscheinlich begegnen, haben gleichwertige Redewendungen.Beachten Sie, dass die meisten Sprachen normalerweise einen Mechanismus haben, um frühzeitig aus der Schleife auszubrechen. Im Fall von Python ist dies die
break
Aussage imcmd == 'e'
Fall des Beispiels in Ihrer Frage.quelle
while True==True
ist hässlich. Es ist so hässlich wiewhile 'apples'!='oranges'
:)true==true
, dass dies eine Verbesserung ist, wo hören Sie auf? Wäre nicht(true==true)==true
noch besser?Während
True
istTrue
.Die while-Schleife wird ausgeführt, solange der bedingte Ausdruck ausgewertet wird
True
.Da
True
immer ausgewertetTrue
wird, läuft die Schleife unbegrenzt, bis etwas innerhalb der Schleifereturn
s oderbreak
s ist.quelle
Alles in () der while-Anweisung wird als Boolescher Wert ausgewertet. Das heißt, es wird entweder in wahr oder falsch umgewandelt.
Betrachten Sie in der Erklärung
while(6 > 5)
Es wertet zuerst den Ausdruck aus,
6 > 5
dertrue
so ist wie zu sagenwhile(true)
Alles, was nicht FALSE, 0, ein Emptry-String "", null oder undefined ist, wird wahrscheinlich mit true bewertet.
Als ich anfing zu programmieren, machte ich Dinge wie
if(foo == true)
: Ich wusste nicht, dass das praktisch dasselbe war wieif(foo)
.Also, wenn Sie sagen, es ist
while(true)
wie sagenwhile(true == true)
Um Ihre Frage zu beantworten: Während WAHR wahr ist.
quelle
während
True
ist wahr - dh immer. Dies ist eine EndlosschleifeBeachten Sie hier die wichtige Unterscheidung zwischen
True
einem Schlüsselwort in der Sprache, das einen konstanten Wert eines bestimmten Typs bezeichnet, und 'true', einem mathematischen Konzept.quelle
while(5)
in C schreiben , wo es keine richtigen Booleschen Werte gibt. Es bedeutet nichtwhile(5==1)
, es bedeutetwhile(5!=0)
.while(5)
bedeutet in C, dass while5
wahr ist, nicht while itstrue
oder0
, was etwas völlig anderes ist.5
ist immer wahr. Wenn Sprachen ein Schlüsselwort habentrue
, ist dies im Allgemeinen eine Konstante, die wahr ist, aber nicht die einzige Konstante, die wahr ist. Ebensofalse
ist nicht unbedingt der einzige Wert, der falsch ist.In diesem Zusammenhang könnte es als interpretiert werden
quelle
True
ist immerTrue
, sowhile True
wird für immer Schleife.Das
while
Schlüsselwort nimmt einen Ausdruck an und durchläuft eine Schleife, während der Ausdruck wahr ist.True
ist ein Ausdruck, der immer wahr ist.Betrachten Sie als möglicherweise klarstellendes Beispiel Folgendes:
Hier
a == 1
wird zurückkehrenTrue
, und somit setzenTrue
inresult
. Daher,ist äquivalent zu:
vorausgesetzt, Sie ändern den Wert
a
innerhalb derwhile
Schleife nicht.quelle
True
ist nicht immerTrue
, zTrue = False
. ;-)Formal
True
ist eine in Python integrierte Konstante vom Typ Bool .Sie können Boolesche Operationen für Bool-Typen verwenden (z. B. an der interaktiven Python-Eingabeaufforderung) und Zahlen in Bool-Typen konvertieren :
Und es gibt "Gotchas", möglicherweise mit dem, was Sie sehen und was der Python-Compiler sieht:
Als Hinweis darauf, wie Python Bool-Typen intern speichert, können Sie Bool-Typen in Ganzzahlen umwandeln, und True wird zu 1 und False 0:
Tatsächlich ist der Python-
bool
Typ eine Unterklasse des Python-int
Typs:Der wichtigere Teil Ihrer Frage ist "Was ist
while True
?" ist 'was ist wahr' und eine wichtige Folgerung: Was ist falsch?Lernen Sie zunächst für jede Sprache, die Sie lernen, was die Sprache als "wahr" und "falsch" ansieht. Python hält Wahrheit etwas anders als Perl Wahrheit zum Beispiel. Andere Sprachen haben leicht unterschiedliche Konzepte von wahr / falsch. Wissen Sie, was Ihre Sprache für verschiedene Operationen und Flusskontrollen als wahr und falsch ansieht, um später viele Kopfschmerzen zu vermeiden!
Es gibt viele Algorithmen, bei denen Sie etwas verarbeiten möchten, bis Sie das finden, wonach Sie suchen. Daher die Endlosschleife oder die unbestimmte Schleife. Jede Sprache hat für diese Konstrukte ihre eigene Sprache. Hier sind gängige C-Endlosschleifen, die auch für Perl funktionieren:
Die
while True:
Form ist in Python für unbestimmte Schleifen üblich, mit einer Möglichkeit, aus der Schleife auszubrechen. Lernen Sie die Python- Flusskontrolle, um zu verstehen, wie Sie auswhile True
Schleifen ausbrechen . Im Gegensatz zu den meisten Sprachen kann Python beispielsweise eineelse
Klausel in einer Schleife haben. Es gibt ein Beispiel im letzten Link.quelle
Eine
while
Schleife verwendet ein bedingtes Argument (dh etwas, das im Allgemeinen entweder wahr oder falsch ist oder als solches interpretiert werden kann) und wird nur ausgeführt, solange die Bedingung nachgibtTrue
.Wie für
while True
? Nun, die einfachste wahre Bedingung istTrue
selbst! Dies ist also eine Endlosschleife, die normalerweise in einem Spiel gut ist, das viele Schleifen erfordert. (Aus meiner Sicht ist es jedoch üblicher, eine Art "done" -Variable auf false zu setzen und diese dann auf true zu setzen, um das Spiel zu beenden, und die Schleife würde eher so aussehenwhile not done:
oder was auch immer.)quelle
In einigen Sprachen ist True gerecht und ein Alias für die Nummer. Sie können mehr darüber erfahren, indem Sie mehr über die boolesche Logik lesen .
quelle
Um Ihre Frage direkt zu beantworten: während die Schleifenbedingung wahr ist. Was es immer ist, in diesem speziellen Code.
quelle
while
Schleifen werden so lange wiederholt, bis die Bedingung falsch ist. Zum Beispiel (Pseudocode):Bei jeder Iteration der Schleife
i
wird sie um 1 erhöht, bis sie 10 ist. Zu diesem Zeitpunkt ist die Bedingungi < 10
nicht mehr erfüllt und die Schleife wird abgeschlossen.Da die Bedingung in
while True
explizit und immer isttrue
, wird die Schleife niemals enden (bis sie auf andere Weise unterbrochen wird, normalerweise durch ein Konstrukt wiebreak
innerhalb des Schleifenkörpers).quelle
Nichts wird
True
schneller bewertet alsTrue
. Es ist also gut, wenn Siewhile True
anstelle vonwhile 1==1
usw. verwenden.quelle
bedeutet Endlosschleife.
Die while-Anweisung wird häufig für eine endliche Schleife verwendet. Die Verwendung der Konstante 'True' garantiert jedoch die Wiederholung der while-Anweisung, ohne dass die Schleife gesteuert werden muss (z. B. Festlegen eines booleschen Werts innerhalb der Iteration), es sei denn, Sie möchten sie unterbrechen.
Eigentlich
quelle
Während True eine Endlosschleife bedeutet, wird diese normalerweise durch einen langen Prozess verwendet. du kannst ändern
mit
quelle
Alles kann als wahr angesehen werden, bis das Gegenteil präsentiert wird. So funktioniert Dualität. Auf diese Weise werden Gegensätze verglichen. Schwarz kann wahr sein, bis Weiß, an welchem Punkt es falsch ist. Schwarz kann auch falsch sein, bis es weiß ist. Es ist kein Zustand, sondern ein Vergleich entgegengesetzter Zustände. Wenn einer wahr ist, ist der andere falsch. True bedeutet nicht, dass es korrekt ist oder akzeptiert wird. Es ist ein Zustand, in dem das Gegenteil immer falsch ist. Es ist Dualität.
quelle