Gibt es in Python einen "ungleichen" Operator?


396

Wie würden Sie sagen, ist nicht gleich?

Mögen

if hi == hi:
    print "hi"
elif hi (does not equal) bye:
    print "no hi"

Gibt es etwas Äquivalentes, ==das "nicht gleich" bedeutet?


5
Fragen Sie else, !=(optional <>) oder is not?
Tadeck

14
Achtung, dass <> in Python 3 nicht mehr funktioniert, also benutze! =
Antonello

3
von Python - Dokumentation: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed

1
von Python - Dokumentation: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Antworten:


623

Verwenden Sie !=. Siehe Vergleichsoperatoren . Zum Vergleichen von Objektidentitäten können Sie das Schlüsselwort isund dessen Negation verwenden is not.

z.B

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)

20
<>wird nicht aus Python 3 entfernt. Kasse PEP401und versuche from __future__ import barry_as_FLUFLlol ~
yegle

Wie würden Sie zwei Binärdaten vergleichen?
Léo Léopold Hertz 준영

2
Nur ein paar Infos, PEP401, das in den Kommentaren erwähnt wurde, war ein Aprilscherz. <>wird jetzt in Python3 nicht unterstützt.
J ... S

1
Nur zur
Veranschaulichung

60

Nicht gleich != (vs gleich ==)

Fragen Sie nach so etwas?

answer = 'hi'

if answer == 'hi':     # equal
   print "hi"
elif answer != 'hi':   # not equal
   print "no hi"

Dieses Python - Basic Operators- Diagramm kann hilfreich sein.


28

Es gibt den !=(nicht gleichen) Operator, der zurückgibt, Truewenn sich zwei Werte unterscheiden. Seien Sie jedoch vorsichtig mit den Typen, weil "1" != 1. Dies gibt immer True und "1" == 1immer False zurück, da sich die Typen unterscheiden. Python ist dynamisch, aber stark typisiert, und andere statisch typisierte Sprachen würden sich über den Vergleich verschiedener Typen beschweren.

Es gibt auch die elseKlausel:

# This will always print either "hi" or "no hi" unless something unforeseen happens.
if hi == "hi":     # The variable hi is being compared to the string "hi", strings are immutable in Python, so you could use the 'is' operator.
    print "hi"     # If indeed it is the string "hi" then print "hi"
else:              # hi and "hi" are not the same
    print "no hi"

Der isOperator ist der Objektidentitätsoperator , mit dem überprüft wird, ob zwei Objekte tatsächlich identisch sind:

a = [1, 2]
b = [1, 2]
print a == b # This will print True since they have the same values
print a is b # This will print False since they are different objects.

12

Sie können beide !=oder verwenden <>.

Beachten Sie jedoch, dass dies !=bevorzugt wird, wenn <>es veraltet ist.


7

Da alle anderen bereits die meisten anderen Möglichkeiten aufgelistet haben, nicht gleich zu sagen, füge ich einfach hinzu:

if not (1) == (1): # This will eval true then false
    # (ie: 1 == 1 is true but the opposite(not) is false)
    print "the world is ending" # This will only run on a if true
elif (1+1) != (2): #second if
    print "the world is ending"
    # This will only run if the first if is false and the second if is true
else: # this will only run if the if both if's are false
    print "you are good for another day"

In diesem Fall ist es einfach, die Prüfung von positiv == (wahr) auf negativ zu schalten und umgekehrt ...


1

Sie können "ist nicht" für "nicht gleich" oder "! =" Verwenden. Bitte sehen Sie das folgende Beispiel:

a = 2
if a == 2:
   print("true")
else:
   print("false")

Der obige Code gibt "true" als = 2 aus, das vor der "if" -Bedingung zugewiesen wurde. Jetzt sehen Sie bitte den Code unten für "ungleich"

a = 2
if a is not 3:
   print("not equal")
else:
   print("equal")

Der obige Code gibt "ungleich" als a = 2 aus, wie zuvor zugewiesen.


0

In Python gibt es zwei Operatoren für die Bedingung "ungleich" -

a.)! = Wenn die Werte der beiden Operanden nicht gleich sind, wird die Bedingung wahr. (a! = b) ist wahr.

b.) <> Wenn die Werte der beiden Operanden nicht gleich sind, wird die Bedingung wahr. (a <> b) ist wahr. Dies ähnelt dem Operator! =.


-3

Verwenden Sie !=oder <>. Beides steht für ungleich.

Die Vergleichsoperatoren <>und !=sind alternative Schreibweisen desselben Operators. !=ist die bevorzugte Schreibweise; <>ist veraltet. [Referenz: Python-Sprachreferenz]


2
Diese Antwort ist im Grunde eine Kopie der Antwort, die @ user128364 zuvor gegeben hat.
SA

-5

Sie können einfach tun:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"

1
Welchen Wert würden Sie den Variablen hiund zuweisen bye? Was auch immer es sein würde, die elif-Klausel würde niemals erreicht werden. Schließlich gibt dieses Beispiel keine eindeutige Antwort auf die Frage.
SA
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.