¿Hay un operador "no igual" en Python?

396

¿Cómo dirías que no es igual?

Me gusta

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

¿Hay algo equivalente a ==eso significa "no igual"?

Entidad Aj
fuente
55
¿Estás preguntando sobre else, !=(opcionalmente <>) o is not?
Tadeck
14
Atención que <> ya no funciona en python 3, ¡así que use! =
Antonello
3
de la documentación de Python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed
1
de la documentación de python: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Respuestas:

624

Uso !=. Ver operadores de comparación . Para comparar las identidades de los objetos, puede usar la palabra clave isy su negación is not.

p.ej

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)
tskuzzy
fuente
20
<>no se elimina de Python 3. Pagar PEP401y probar from __future__ import barry_as_FLUFLlol ~
yegle
¿Cómo compararías dos datos binarios?
Léo Léopold Hertz 준영
2
Solo alguna información, PEP401 mencionada en los comentarios fue una broma de April Fool. <>no es compatible con Python3 ahora.
J ... S
1
Solo para el registro: operadores de comparación en Python 3.7
Ocaso Protal
60

No igual != (vs igual ==)

¿Estás preguntando sobre algo como esto?

answer = 'hi'

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

Esta tabla de Python - Operadores básicos puede ser útil.

Levon
fuente
28

Existe el !=operador (no igual) que regresa Truecuando dos valores difieren, aunque tenga cuidado con los tipos porque "1" != 1. Esto siempre devolverá True y "1" == 1siempre devolverá False, ya que los tipos difieren. Python es dinámicamente, pero fuertemente tipado, y otros lenguajes estáticamente tipados se quejarían de comparar diferentes tipos.

También está la elsecláusula:

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

El isoperador es el operador de identidad de objeto utilizado para verificar si dos objetos son iguales:

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
fuente
12

Puedes usar ambos !=o <>.

Sin embargo, tenga en cuenta que !=se prefiere donde <>está en desuso.

Malek B.
fuente
7

Como todos los demás ya han enumerado la mayoría de las otras formas de decir que no es igual, solo agregaré:

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"

en este caso es simple cambiar la verificación de positivo == (verdadero) a negativo y viceversa ...

gabeio
fuente
1

Puede usar "no es" para "no es igual" o "! =". Por favor vea el siguiente ejemplo:

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

El código anterior imprimirá "verdadero" como a = 2 asignado antes de la condición "si". Ahora por favor vea el siguiente código para "no igual"

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

El código anterior imprimirá "no igual" como a = 2 como se asignó anteriormente.

Amir Md Amiruzzaman
fuente
0

Hay dos operadores en Python para la condición "no igual":

a.)! = Si los valores de los dos operandos no son iguales, entonces la condición se vuelve verdadera. (a! = b) es cierto.

b.) <> Si los valores de los dos operandos no son iguales, entonces la condición se vuelve verdadera. (a <> b) es cierto. Esto es similar al operador! =.

usuario128364
fuente
-3

Use !=o <>. Ambos significa no igual.

Los operadores de comparación <>y !=son ortografías alternativas del mismo operador. !=es la ortografía preferida; <>Es obsoleto. [Referencia: referencia del lenguaje Python]

Ehsan
fuente
2
Esta respuesta es básicamente una copia de la que @ user128364 dio antes.
SA
-5

Simplemente puedes hacer:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"
cgastald
fuente
1
¿Qué valor asignarías a las variables hiy bye? Sea lo que sea, nunca se alcanzará la cláusula elif. Por último, este ejemplo no proporciona una respuesta clara a la pregunta.
SA