Чи є в Python оператор "не рівний"?


396

Як би ви сказали, що не дорівнює?

Подібно до

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

Чи є щось рівнозначне, ==що означає «не рівне»?


5
Ви питаєте про else, !=(необов'язково <>) або is not?
Тадек

14
Зверніть увагу, що <> більше не працює в python 3, тому використовуйте! =
Antonello

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

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

Відповіді:


623

Використовуйте !=. Дивіться операторів порівняння . Для порівняння ідентифікацій об’єктів можна використовувати ключове слово isта його заперечення is not.

напр

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

20
<>не видаляється з Python 3. Оформити замовлення PEP401та спробувати from __future__ import barry_as_FLUFLlol ~
yegle

Як би ви порівняли дві двійкові дані?
Лео Леопольд Герц 준영

2
Лише деяка інформація, яку згадував PEP401 у коментарях, була жартівливим жартом. <>зараз не підтримується в Python3.
J ... S



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"

в цьому випадку просто переключити перевірку позитивного == (вірно) на негативне і навпаки ...


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) вірно.

б.) <> Якщо значення двох операндів не рівні, то умова стає істинною. (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.