Finnes det en "not equal" operator i Python?

Hvordan vil du si at den ikke er lik?

Som for eksempel

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

Finnes det noe tilsvarende == som betyr "ikke lik"?

Løsning

Bruk !=. Se sammenligningsoperatorer. For å sammenligne objektidentiteter kan du bruke nøkkelordet is og negasjonen is not.

f.eks.

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

Ikke lik != (vs lik ==)

Spør du om noe slikt?

answer = 'hi'

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

Dette diagrammet Python - Grunnleggende operatorer kan være nyttig.

Kommentarer (0)

Operatoren != (not equal) returnerer True når to verdier er forskjellige, men vær forsiktig med typene, for "1" != 1. Denne vil alltid returnere True, mens "1" == 1 alltid vil returnere False, siden typene er forskjellige. Python er dynamisk, men sterkt typet, og andre statisk typede språk vil klage på at de sammenligner ulike typer.

Vi har også else-setningen:

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

Operatoren is er objektidentitetsoperatoren som brukes til å sjekke om to objekter faktisk er like:

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.
Kommentarer (0)