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?

Aj Entität
quelle
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)
tskuzzy
quelle
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.

Levon
quelle
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.
Samy Vilar
quelle
12

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

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

Malek B.
quelle
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 ...

gabeio
quelle
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.

Amir Md Amiruzzaman
quelle
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! =.

user128364
quelle
-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]

Ehsan
quelle
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"
cgastald
quelle
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