Оператор равенства используется для сравнения двух строк в Python. Он сравнивает по одному символу обеих строк. Когда в строке встречаются разные символы, сравнивается их значение Unicode. В Python символ с более низким значением Unicode считается меньшим, а более высокое значение Unicode считается большим.
Что сравнить строки в Python?
Сравнение строк Python можно выполнять с помощью Python String Equals: операторов равенства(==) и сравнения(, !=, =). В Python нет специальных функций для сравнения двух строк. Строки в Python представляют собой непрерывные последовательности символов, разделенные одинарными или двойными кавычками. Python не имеет отдельного типа данных для символов, поэтому они представлены в виде одной строки символов.
См. следующий код.
|
1 2 3 4 5 6 |
# app.py lead = 'Millie' print(lead == 'Millie') print(lead == 'millie') |
Выход:
|
1 2 3 4 |
➜ pyt python3 app.py True False ➜ pyt |
На выходе мы сначала получили True, а затем False, почему? Строки одинаковые, но первый символ первой строки в верхнем регистре, а первый символ второй строки в нижнем регистре. Их значения Unicode разные; вот почему второй вывод — False. Это означает, что оператор равенства Python чувствителен к регистру.
Как получить значения Unicode символов в Python
Что ж, вы можете использовать функцию Python ord() для получения значений Unicode символов в Python.
|
1 2 3 4 5 6 7 |
# app.py print(ord('m')) print(ord('M')) print(ord('a')) print(ord('A')) |
Выход:
|
1 2 3 4 5 6 |
➜ pyt python3 app.py 109 77 65 97 ➜ pyt |
В приведенном выше примере, где мы сравниваем строки «Millie» и «millie», значения Unicode для m и M различны; вот почему мы получили False на выходе, потому что они не одинаковы, несмотря на один и тот же символ, их чувствительность к регистру имеет значение.
Как принять ввод от пользователя
Мы можем использовать функцию Python input(), чтобы получить ввод от пользователя, а затем сравнить значения с помощью операторов сравнения Python.
См. следующий пример.
|
1 2 3 4 5 6 7 8 9 10 11 |
# app.py mando = input('Please enter the name of mando:\n') lando = input('Please enter the name of lando:\n') if mando < lando: print(mando + " comes before " + lando + " in the dictionary.") elif mando > lando: print(mando + " comes after " + lando + " in the dictionary.") else: print(mando + " and " + lando + " are same.") |
Выход:
|
1 2 3 4 5 6 7 |
➜ pyt python3 app.py Please enter the name of mando: harry Please enter the name of lando: potter harry comes before potter in the dictionary. ➜ pyt |
«h» стоит перед «p».
Что, если одна из строк состоит из второй строки с некоторыми дополнительными символами? Давайте узнаем, что будет на выходе в таком случае.
|
1 2 3 |
# app.py print('Hot' < 'Hotpie') |
Выход:
|
1 2 3 |
➜ pyt python3 app.py True ➜ pyt |
Если последовательность символов одинакова в обеих строках, но в одной из них есть лишние символы, то более длинная строка считается большей.
Заключение
Оператор строкового равенства Python всегда проверяет значение Unicode символов строки, и если они совпадают, то он возвращает True, в противном случае он возвращает False.

