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.