Esiste un operatore "non uguale" in Python?


396

Come diresti che non è uguale?

Piace

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

C'è qualcosa di equivalente a ==questo significa "non uguale"?


5
Stai chiedendo else, !=(facoltativamente <>) o is not?
Tadeck,

14
Attenzione che <> non funziona più in Python 3, quindi usa! =
Antonello

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

1
dalla documentazione python: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Risposte:


624

Usa !=. Vedi operatori di confronto . Per confrontare le identità degli oggetti, è possibile utilizzare la parola chiave ise la relativa negazione is not.

per esempio

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

20
<>non viene rimosso da Python 3. Acquista PEP401e prova from __future__ import barry_as_FLUFLlol ~
yegle

Come confronteresti due dati binari?
Léo Léopold Hertz 준영

2
Solo alcune informazioni, PEP401 menzionata nei commenti era una battuta di pesce d'aprile. <>Al momento non è supportato in Python3.
J ... S,


60

Non uguale != (vs uguale ==)

Stai chiedendo qualcosa del genere?

answer = 'hi'

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

Questo grafico Python - Operatori di base potrebbe essere utile.


28

C'è l' !=operatore (non uguale) che ritorna Truequando due valori differiscono, ma fai attenzione ai tipi perché "1" != 1. Ciò restituirà sempre True e "1" == 1restituirà sempre False, poiché i tipi differiscono. Python è dinamicamente, ma fortemente tipizzato, e altri linguaggi tipicamente statici si lamenterebbero di confrontare diversi tipi.

C'è anche la elseclausola:

# 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"

L' isoperatore è l' operatore di identità oggetto utilizzato per verificare se due oggetti in realtà sono uguali:

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

Puoi usare entrambi !=o <>.

Tuttavia, si noti che !=è preferito dove <>è deprecato.


7

Visto che tutti gli altri hanno già elencato la maggior parte degli altri modi per dire che non è uguale, aggiungerò semplicemente:

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 questo caso è semplice cambiare il controllo di positivo == (vero) in negativo e viceversa ...


1

Puoi usare "non è" per "non uguale" o "! =". Vedi l'esempio seguente:

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

Il codice sopra verrà stampato "vero" come un = 2 assegnato prima della condizione "if". Ora si prega di vedere il codice qui sotto per "non uguale"

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

Il codice sopra verrà stampato "non uguale" come a = 2 come assegnato in precedenza.


0

Ci sono due operatori in Python per la condizione "non uguale" -

a.)! = Se i valori dei due operandi non sono uguali, la condizione diventa vera. (a! = b) è vero.

b.) <> Se i valori dei due operandi non sono uguali, allora la condizione diventa vera. (a <> b) è vero. Questo è simile all'operatore! =.


-3

Usa !=o <>. Entrambi stanno per non uguale.

Gli operatori di confronto <>e !=sono ortografie alternative dello stesso operatore. !=è l'ortografia preferita; <>è obsoleto. [Riferimento: riferimento al linguaggio Python]


2
questa risposta è sostanzialmente una copia di one @ user128364 fornita in precedenza.
SA

-5

Puoi semplicemente fare:

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

1
Quale valore assegneresti alle variabili hie bye? Qualunque cosa sarebbe, la clausola elif non sarebbe mai stata raggiunta. Infine, questo esempio non fornisce chiaramente una risposta alla domanda.
SA
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.