Как сравнивать строки в Python
Введение
Вы можете сравнивать строки в Python, используя равенство (==
) и сравнение (<
, >
, !=
, <=
, >=
). Не существует специальных методов для сравнения двух строк. В этой статье вы узнаете, как работает каждый из операторов при сравнении строк.
Сравнение строк Python сравнивает символы в обеих строках один за другим. При обнаружении разных символов сравниваются их значения кодовой точки Unicode. Символ с меньшим значением Unicode считается меньшим.
Операторы равенства и сравнения Python
Объявить строковую переменную:
fruit1 = 'Apple'
В следующей таблице показаны результаты сравнения идентичных строк (от Apple
до Apple
) с использованием разных операторов.
Operator | Code | Output |
---|---|---|
Equality | print(fruit1 == 'Apple') |
True |
Not equal to | print(fruit1 != 'Apple') |
False |
Less than | print(fruit1 < 'Apple') |
False |
Greater than | print(fruit1 > 'Apple') |
False |
Less than or equal to | print(fruit1 <= 'Apple') |
True |
Greater than or equal to | print(fruit1 >= 'Apple') |
True |
Обе струны абсолютно одинаковы. Другими словами, они равны. Оператор равенства и другие операторы равно возвращают True
.
Если вы сравниваете строки с разными значениями, вы получаете прямо противоположный результат.
При сравнении строк, содержащих одну и ту же подстроку, например Apple
и ApplePie
, более длинная строка считается большей.
Сравнение пользовательского ввода для оценки равенства с использованием операторов
Этот пример кода принимает и сравнивает ввод от пользователя. Затем программа использует результаты сравнения для вывода дополнительной информации об алфавитном порядке входных строк. В этом случае программа предполагает, что меньшая строка предшествует большей.
fruit1 = input('Enter the name of the first fruit:\n')
fruit2 = input('Enter the name of the second fruit:\n')
if fruit1 < fruit2:
print(fruit1 + " comes before " + fruit2 + " in the dictionary.")
elif fruit1 > fruit2:
print(fruit1 + " comes after " + fruit2 + " in the dictionary.")
else:
print(fruit1 + " and " + fruit2 + " are the same.")
Вот пример потенциального результата при вводе разных значений:
OutputEnter the name of first fruit:
Apple
Enter the name of second fruit:
Banana
Apple comes before Banana in the dictionary.
Вот пример потенциального вывода при вводе идентичных строк:
OutputEnter the name of first fruit:
Orange
Enter the name of second fruit:
Orange
Orange and Orange are the same.
Примечание. Чтобы этот пример работал, пользователю необходимо ввести либо только верхний регистр, либо только нижний регистр для первой буквы обеих входных строк. Например, если пользователь вводит строки apple
и Banana
, вывод будет таким: apple идет после Banana в словаре
, что неверно. .
Это несоответствие возникает из-за того, что значения кодовой точки Unicode для прописных букв всегда меньше, чем значения кодовой точки Unicode для строчных букв: значение a
равно 97, а значение B
равно 66. Вы можете проверить это самостоятельно, используя функцию ord()
для вывода значения кодовой точки Unicode для символов.
Заключение
В этой статье вы узнали, как сравнивать строки в Python, используя равенство (==
) и сравнение (<
, >
, ! =
, <=
, >=
) операторы. Продолжайте изучать строки Python.