2012-06-16 22 views
238

Wie würdest du sagen, ist nicht gleich?Gibt es in Python einen "ungleich" Operator?

Wie

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

Gibt es einen Ersatz für ==, die "nicht gleich" bedeutet?

+3

Fragen Sie nach 'else','! = '(Optional' <> ') oder' is not '? – Tadeck

+10

Bitte beachten Sie, dass das Suchmaschinenranking dieses Quests höher ist als das Ranking der Online-Dokumente. Daher ist es immer noch eine nützliche Frage. – f4der

+7

Beachten Sie, dass <> in Python 3 nicht mehr funktioniert, also verwenden Sie! = – Antonello

Antwort

430

Verwenden Sie !=. Siehe comparison operators. Zum Vergleich von Objektidentitäten können Sie das Schlüsselwort is und dessen Negation is not verwenden.

z.B.

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

Sagen wir, es gibt nur '! =', da '<>' aus Python 3 entfernt wurde. Es sollte eine und vorzugsweise nur eine Möglichkeit geben;) Anyway +1 – Tadeck

+1

Gemäß neueren Dokumenten - http://docs.python.org/library/stdtypes.html#comparisons - '<>' steht nur in 2.6 und 2.7 für Rückwärtskompatibilität und "neuer Code sollte immer' 'verwenden!' '." – lvc

+11

'<>' wird nicht aus Python 3 entfernt. Auschecken 'PEP401' und versuchen' von__future__ import barry_as_FLUFL' lol ~ – yegle

39

Ungleich != (vs gleich ==)

Fragst du über so etwas wie das?

answer = 'hi' 

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

Diese Python - Basic Operators Chart könnte hilfreich sein.

17

Es gibt den != (nicht gleich) Operator, die True, wenn zwei Werte unterscheiden, wenn auch vorsichtig sein, kehrt mit den Typen "1" != 1 dies dazu führen, wird immer wahr zurückgeben und "1" == 1 wird immer False zurückgeben, da die Typen unterscheiden, ist Python dynamisch aber stark typisierte, andere statisch typisierte Sprachen würden sich über den Vergleich verschiedener Typen beklagen.

Theres auch die else Klausel

# this will always print either "hi" or "no hi" unless something unforseen 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 is Operator ist der object identity Operator verwendet zu überprüfen, ob zwei Objekt in der Tat die gleichen 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. 
4

Sehen als alle anderen bereits aufgeführt meisten die anderen Möglichkeiten nicht gleich sagen werde ich nur noch hinzufügen:

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 Überprüfung der positiven == (true) auf negativ und umgekehrt ...

-3

Sie können einfach tun Schalt:

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

Welchen Wert würden Sie den Variablen 'hi' und' bye' zuweisen? Was auch immer es sein würde, die elif-Klausel würde niemals erreicht werden. Schließlich liefert dieses Beispiel keine eindeutige Antwort auf die Frage. –

3

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

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

0

Verwenden Sie != oder <>. Beide stehen für nicht gleich.

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

+0

Diese Antwort ist im Grunde eine Kopie des einen @ user128364 zuvor gegeben. –

-1

gibt es zwei Betreiber in Python für "nicht gleich" Zustand -

a).!= Wenn die Werte zweier Operanden nicht gleich sind, wird die Bedingung wahr. (a! = B) ist wahr.

b.) <> Wenn die Werte zweier Operanden nicht gleich sind, wird die Bedingung wahr. (a <> b) ist wahr. Dies ist vergleichbar mit! = Operator.

+1

'<>' wurde in Python 3 entfernt. In jedem Fall liefert diese Antwort keine neuen Informationen. – vaultah

Verwandte Themen