Testen mehrerer Variablen auf Gleichheit: Eine umfassende Lösung
Diese Abfrage wirft eine faszinierende Herausforderung auf: den Vergleich mehrerer Variablen mit einer bestimmten Ganzzahl und die Generierung einer Ausgabezeichenfolge basierend auf den Ergebnissen.
Um dies zu beheben, muss man verstehen, dass sich boolesche Ausdrücke in Python nicht so verhalten Englische Sätze. Das bereitgestellte Codefragment interpretiert beispielsweise jede Seite des Operators „oder“ als separaten Ausdruck, anstatt alle Variablen anhand desselben Vergleichs auszuwerten.
Um dieses Problem zu beheben, lautet die korrekte Syntax:
if x == 1 or y == 1 or z == 1:
Dadurch wird sichergestellt, dass der Vergleich für jede Variable unabhängig durchgeführt wird.
Darüber hinaus kann man diesen Code mithilfe eines Einschlusstests gegen a verdichten Tupel:
if 1 in (x, y, z):
Oder, noch effektiver, ein Set kann für seinen Mitgliedschaftstest mit konstanten Kosten verwendet werden:
if 1 in {x, y, z}:
Dieser verbesserte Code nutzt die Tatsache, dass ein Set Der Mitgliedschaftstest hat unabhängig vom linken Operanden eine feste Ausführungszeit.
Im Wesentlichen trennt der Operator „Oder“ seine Argumente und wertet sie jeweils als booleschen Wert aus Ausdruck. Selbst wenn es als einzelner Ausdruck ausgewertet würde, würde das Ergebnis jedoch nicht dem gewünschten Verhalten entsprechen. Dies liegt daran, dass der Operator „or“ das erste Argument zurückgibt, das „wahr“ ist (ein anderer Wert als False, numerisch 0 oder ein leerer Container). Folglich würde nur der erste wahre Wert in der Sequenz berücksichtigt, was möglicherweise zu falschen Ergebnissen führen würde.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Variablen in Python effizient auf Gleichheit testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!