Есть ли в Python оператор «не равно»?


396

Как бы вы сказали не равны?

подобно

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

Есть ли что-то эквивалентное тому, ==что означает «не равный»?


5
Вы спрашиваете о else, !=(необязательно <>) или is not?
Tadeck

14
Обратите внимание, что <> больше не работает в Python 3, так что используйте! =
Антонелло

3
из питона документации: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
Хамед

1
из питона документации: python2: docs.python.org/2/reference/expressions.html#not-in
Хамед

Ответы:


624

Использование !=. Смотрите операторы сравнения . Для сравнения идентификаторов объектов вы можете использовать ключевое слово isи его отрицание is not.

например

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

20
<>не удаляется из Python 3. PEP401from __future__ import barry_as_FLUFL
Проверьте

Как бы вы сравнили две двоичные данные?
Лео Леопольд Герц 준영

2
Просто некоторая информация, PEP401, упомянутая в комментариях, была первоапрельской шуткой. <>сейчас не поддерживается в Python3.
J ... S

1
Просто для
справки


28

Есть !=(не равно) оператор, который возвращает, Trueкогда два значения различаются, хотя будьте осторожны с типами, потому что "1" != 1. Это всегда возвращает True и "1" == 1всегда возвращает False, так как типы различаются. Python динамически, но строго типизирован, и другие статически типизированные языки будут жаловаться на сравнение разных типов.

Там также elseпункт:

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

isОператор является идентификатор объекта оператор используется для проверки , если два объекта фактически одинаков:

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

Вы можете использовать оба !=или <>.

Тем не менее, обратите внимание, что !=является предпочтительным, где <>не рекомендуется.


7

Поскольку все остальные уже перечислили большинство других способов сказать, что они не равны, я просто добавлю:

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"

в этом случае просто переключите проверку положительного == (true) на отрицательный и наоборот ...


1

Вы можете использовать «не» для «не равно» или «! =». Пожалуйста, смотрите пример ниже:

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

Приведенный выше код выведет «true» как a = 2, назначенное перед условием «if». Теперь, пожалуйста, смотрите код ниже для "не равно"

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

Приведенный выше код выведет «не равно», как a = 2, как назначено ранее.


0

В Python есть два оператора для условия «не равно» -

a.)! = Если значения двух операндов не равны, условие становится истинным. (a! = b) верно.

б.) <> Если значения двух операндов не равны, то условие становится истинным. (а <> б) верно. Это похоже на оператор! =.


-3

Используйте !=или<> . Оба означают не равных.

Операторы сравнения <>и !=являются альтернативными написаниями одного и того же оператора. !=является предпочтительным правописанием; <>устарел. [Ссылка: справочник по языку Python]


2
этот ответ в основном является копией той, которую @ user128364 дал ранее.
SA

-5

Вы можете просто сделать:

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

1
Какое значение вы бы присвоили переменным hiи bye? Как бы то ни было, пункт об элифе никогда не будет достигнут. Наконец, этот пример не дает четкого ответа на вопрос.
SA
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.