In einem Beispiel aus Zed Shaw's Learn Python the Hard Way zeigt eine der Übungen den folgenden Code:
next = raw_input("> ")
if "0" in next or "1" in next:
how_much = int(next)
Es fällt mir schwer, die Bedeutung von "in" in dieser Anweisung zu verstehen. Ich bin es gewohnt, if
-Anweisungen zu verwenden, wie z.B. in Javascript, wo die Syntax etwa so lautet:
var = 5;
if (var > 3) {
//code to be executed
}
Ist diese if
/ in
Anweisung (in Python) das gleiche wie if()
in Javascript?
Eine Antwort darauf zu finden, war schwierig, weil "in" eine so kurze Zeichenfolge ist, um eine Antwort über eine Suchmaschine einzugrenzen, und ich kenne den richtigen Namen für seine Operation nicht.
Das hängt davon ab, was Nächstes
ist.
Wenn es eine Zeichenkette ist (wie in deinem Beispiel), dann sucht in
nach Teilstrings.
>>> "in" in "indigo"
True
>>> "in" in "violet"
False
>>> "0" in "10"
True
>>> "1" in "10"
True
Wenn es sich um eine andere Art von Iterable handelt (Liste, Tupel, Menge, Wörterbuch...), dann prüft "in" auf Zugehörigkeit.
>>> "in" in ["in", "out"]
True
>>> "in" in ["indigo", "violet"]
False
In einem Wörterbuch wird die Zugehörigkeit als "einer der Schlüssel sein" betrachtet:
>>> "in" in {"in": "out"}
True
>>> "in" in {"out": "in"}
False
Die Verwendung von "a in b" ist einfach eine Übersetzung von "b.contains(a)", die zurückgeben sollte, ob b a enthält oder nicht.
Aber Ihr Beispiel sieht ein wenig seltsam aus, es nimmt eine Eingabe vom Benutzer und weist seinen ganzzahligen Wert der Variable how_much
zu, wenn die Eingabe "0"
oder "1"
enthält.
Vielleicht helfen diese Beispiele, um zu verdeutlichen, was "in" bedeutet. Es bedeutet im Grunde genommen: "Ist dieses Element in diesem anderen Element?
listOfNums = [ 1, 2, 3, 4, 5, 6, 45, 'j' ]
>>> 3 in listOfNums:
>>> True
>>> 'j' in listOfNums:
>>> True
>>> 66 in listOfNums:
>>> False