Czy w Pythonie jest „nierówny” operator?

396

Jak powiedziałbyś, że nie jest równy?

Lubić

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

Czy istnieje coś równoważnego, ==co oznacza „nie równy”?

Aj Entity
źródło
5
Pytasz o else, !=(opcjonalnie <>) lub is not?
Tadeck
14
Uwaga: <> już nie działa w Pythonie 3, więc użyj! =
Antonello
3
z dokumentacji python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed
1
z dokumentacji Pythona: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Odpowiedzi:

623

Zastosowanie !=. Zobacz operatory porównania . Do porównywania tożsamości obiektów można użyć słowa kluczowego isi jego negacji is not.

na przykład

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)
tskuzzy
źródło
20
<>nie jest usuwany z Python 3. Kasa PEP401i spróbuj from __future__ import barry_as_FLUFLlol ~
yegle 25'12
Jak porównałbyś dwie dane binarne?
Léo Léopold Hertz -
2
Tylko niektóre informacje, o których wspominał PEP401, to żart primaaprilisowy. <>nie jest teraz obsługiwany w Python3.
J ... S
1
Dla
przypomnienia
60

Nie równe != (vs równe ==)

Pytasz o coś takiego?

answer = 'hi'

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

Ta tabela w języku Python - Basic Operators może być pomocna.

Levon
źródło
28

Istnieje !=(nierównany) operator, który zwraca, Truegdy dwie wartości się różnią, ale uważaj na typy, ponieważ "1" != 1. To zawsze zwróci Prawdę i "1" == 1zawsze zwróci Fałsz, ponieważ typy są różne. Python jest dynamicznie, ale silnie typowany, a inne statycznie typowane języki narzekałyby na porównywanie różnych typów.

Istnieje również elseklauzula:

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

isOperator jest tożsamość obiektu operator służy do sprawdzania, czy dwa obiekty w rzeczywistości są takie same:

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
źródło
12

Możesz użyć obu !=lub <>.

Należy jednak pamiętać, że !=preferowane <>jest tam, gdzie jest przestarzałe.

Malek B.
źródło
7

Widząc, że wszyscy inni wymienili już większość innych sposobów na stwierdzenie, że nie są sobie równi, dodam tylko:

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"

w tym przypadku wystarczy przełączyć kontrolę pozytywnej == (prawda) na negatywną i odwrotnie ...

gabeio
źródło
1

Możesz użyć „nie jest” dla „nie równy” lub „! =”. Zobacz przykład poniżej:

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

Powyższy kod wyświetli „true” jako a = 2 przypisany przed warunkiem „if”. Teraz zobacz poniższy kod „nie równy”

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

Powyższy kod wyświetli „nie równy” jako a = 2, jak wcześniej przypisano.

Amir Md Amiruzzaman
źródło
0

W Pythonie są dwa operatory dla warunku „nie równego” -

a.)! = Jeśli wartości dwóch argumentów nie są równe, wówczas warunek staje się spełniony. (a! = b) jest prawdziwe.

b.) <> Jeśli wartości dwóch argumentów nie są równe, wówczas warunek staje się spełniony. (a <> b) jest prawdziwe. Jest to podobne do operatora! =.

użytkownik128364
źródło
-3

Użyj !=lub <>. Oba oznaczają nierówne.

Operatory porównania <>i !=są alternatywnymi pisowniami tego samego operatora. !=jest preferowaną pisownią; <>jest przestarzały. [Odwołanie: odniesienie do języka Python]

Ehsan
źródło
2
ta odpowiedź jest w zasadzie kopią tego, który @ user128364 dał wcześniej.
SA
-5

Możesz po prostu zrobić:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"
cgastald
źródło
1
Jaką wartość przypisałbyś zmiennym hii bye? Cokolwiek by to było, klauzula elif nigdy nie zostałaby osiągnięta. Wreszcie ten przykład nie zawiera jednoznacznej odpowiedzi na pytanie.
SA