В Python можете да използвате операторите not equal to и the equal to, за да проверите дали два обекта на Python имат една и съща стойност. Този урок ще ви научи как да използвате тези оператори с много примерен код.
В този урок ще научите:
- синтаксиса на оператора неравно (!=) и случаите на използване,
- синтаксиса на оператора за равенство (==) с примери и
- използването на оператори is и is not за проверка на идентичността на всеки два обекта на Python.
Да започваме.
Съдържание
Python Not Equal оператор Синтаксис
За всеки два обекта на Python obj1 и obj2 общият синтаксис за използване на оператора not equal е:
<obj1> != <obj2>
- връща True, когато стойностите на obj1 и obj2 не са равни, и
- връща False в противен случай.
Забележка: Както бе споменато по-горе, obj1 и obj2 могат да бъдат цели числа, числа с плаваща запетая, низове, списъци и т.н.
Примери за код на оператор на Python Not Equal
В този раздел нека кодираме няколко примера, за да разберем по-добре оператора not equal.
Използване на оператор Not Equal на Python за сравнение
Ето първия ни пример.
num1 = 27 num2 = 3*9 num1 != num2 # Output: False
Можете да стартирате примерните кодове в pctechbg.net Python IDE — направо от вашия браузър. Или можете да изберете да работите на вашата локална машина.
Тъй като num1 = 27, а num2 също дава оценка на 27 (3*9 = 27), стойностите на num1 и num2 са равни. Така операторът != връща False.
Да вземем друг пример.
В кода по-долу num1 е зададено на 7. А num2 е зададено на низ 7. Тъй като те са от различни типове данни, операторът not equal връща True.
num1 = 7 num2 = "7" num1 != num2 # Output: True
Преобразувате низа в цяло число, както е показано:
num1 = 7 num2 = int("7") num1 != num2 # Output: False
В този случай можете да видите, че върнатият резултат е False—тъй като num1 и num2 вече са равни на цяло число 7.
Можете също да използвате оператора not equal с колекции на Python като списъци, кортежи и набори.
Забележка: За колекции от данни, като например списъци, операторът not equal работи, като проверява стойностите на отделните елементи. Например два списъка list1 и list2 — всеки с дължина n — са равни само ако list1[i] == списък2[i] за i в {0,1,2,3,..n-1}.
Ето един пример:
list1 = [2,4,6,8] list2 = [2,4,6,9] list1 != list2 # Output: True
В горния пример list1 и list2 се различават само по един елемент. А операторът not equal != връща True, както се очаква.
Използване на оператор Not Equal на Python в условни изрази
Често ще използвате оператора not equal to като част от условните изрази на Python.
Например кодовият фрагмент по-долу показва как можете да проверите дали дадено число е нечетно или не.
Число, което не се дели равномерно на 2, е нечетно. И това се свежда до условието num%2 != 0.
num = 7 if(num%2 != 0): print("The number is odd.") else: print("The number is even.") # Output: The number is odd.
Можете също да използвате условни изрази в списък на разбиранията когато искате да запазите само онези елементи от списъка, които отговарят на конкретно условие. В примера по-долу odd_10 е списъкът на всички нечетни числа, по-малки от 10.
odd = [num for num in range(10) if num%2 != 0] print(odd) # Output: [1, 3, 5, 7, 9]
И това завършва нашата дискусия за оператора не е равно (!=).✅
Както може би сте се досетили досега, операторът равно на произвежда обратен ефект на оператора не е равно.
Ще научите повече за това в следващия раздел.
Python Equal Operator Syntax
Ето синтаксиса за използване на оператора равно на Python:
<obj1> == <obj2> #where <obj1> and <obj2> are valid Python objects
- връща True, когато стойностите на obj1 и obj2 са равни, и
- връща False в противен случай.
Примери за код на Python Equal Operator
Операторът за равно (==) може да се използва много подобно на оператора за неравно.
Нека кодираме следните примери:
- за да проверите дали два низа са равни,
- за да проверите дали числото е четно и
- да използвате условни изрази при разбиране на списък
Използване на оператор Not Equal на Python за сравнение
В кодовия фрагмент по-долу str1 и str2 са еднакви по отношение на стойността. Така че операторът за равенство (==) връща True.
str1 = "coding" str2 = "coding" str1 == str2 # Output: True
Python Equal оператор
Нека сега използваме оператора за равенство в условен израз.
Забележка: Число, което се дели равномерно на 2, е четно. И в кода това се свежда до условието num%2 == 0
num = 10 if(num%2 == 0): print("The number is even.") else: print("The number is odd.") # Output: The number is even.
Нека сега надградим този пример, използвайки разбирането на списъка на Python, за да получим всички четни числа, по-малки от 10.
even_10 = [num for num in range(10) if num%2 == 0] print(even_10) # Output: [0, 2, 4, 6, 8]
В горния пример,
- range(10) връща обект от диапазон, който може да бъде обработен, за да се получат всички цели числа от 0 до 9.
- Условието num%2 == 0 е вярно само за четни числа.
- И така, even_10 е списъкът на всички четни числа, по-малки от 10.
Досега научихте как да проверявате за равенство с помощта на операторите not equal (!=) и equal (==).
В следващия раздел ще научите как да проверите самоличността на два обекта. Ще проверите дали два обекта на Python са идентични.
Как да използвате операторите is и is not на Python
Ако сте начинаещ в програмирането на Python, възможно е да сте объркани между операторите == и is. Нека изясним това в този раздел.
В предишния раздел имахме пример, при който str1 и str2 са равни и операторът == връща True.
Сега изпълнете следния кодов фрагмент.
str1 = "coding" str2 = "coding" str1 is str2 # Output: False
Можете да видите, че str1 е str2 връща False.
Нека направим крачка назад и разберем какво прави операторът is на Python.
Операторът is работи върху всеки два обекта на Python.
И връща True само ако двата обекта са идентични – тоест те се отнасят до един и същ обект в паметта.
Въпреки че str1 е равно на str2, str1 не е str2, тъй като те сочат към два различни обекта в паметта. И следователно те имат различни идентичности.
== и е НЕ са едно и също
В Python можете да използвате документ за самоличност() функция за получаване на идентичността на обекта.
▶ Изпълнете следната кодова клетка, за да получите идентичностите на str1 и str2.
id(str1) # Sample output: 139935398870320 id(str2) # Sample output: 139935398871344
Както можете да видите, str1 и str2 имат различни идентичности. И str1 е str2 връща False, както се очаква.
Сглобявайки го,
<obj1> is <obj2> # returns True if and only if id(<obj1>) == id(<obj2>) # returns True
Нека бързо проверим това, както е показано:
str1 = "coding" str2 = str1 print(str1 is str2) print(id(str1) == id(str2)) # Output True True
Интуитивно операторът is not прави обратното на оператора is.
Операторът is not работи върху всеки два обекта на Python.
И връща False само ако двата обекта са идентични – тоест те се отнасят за един и същ обект в паметта. В противен случай връща True.
В горните примери за код опитайте да замените is с is not и проверете резултатите.
Заключение 👩💻
Надяваме се, че сте намерили този урок за полезен.
За да обобщим, вие научихте:
- как да използвате операторите за равно (==) и неравно (!=), за да проверите дали два обекта на Python имат еднаква стойност,
- разликата между равенството и идентичността на обектите на Python и
- как операторите на Python is и is not помагат при проверката дали два обекта на Python са идентични.
Научете как да изчислявате часовата разлика или да направите игра със змия в Python тук.
Ще се видим в следващия урок. Дотогава, приятно учене и кодиране!🎉