Как сравнить строки в Python? Операторы сравнения строк | OTUS
Время ограничено!
Дополнительные скидки – только до 27 января. Торопитесь! Подробности в чате.
Подробнее

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65

Как сравнить строки в Python? Операторы сравнения строк

Строка в Python представляет собой набор символов, находящихся в кавычках. При этом сравнение строк отличается от сравнения чисел и имеет свои особенности. В этой статье мы кратко и простым языком расскажем о сравнении строк в Python и посмотрим, какие операторы для этого есть, и как эти операторы используются.

Основные операторы сравнения в Python

Итак, в языке программирования Python для сравнения строк используют следующие операторы:

  • оператор <, «меньше»;
  • оператор <=, «меньше или равно;
  • оператор ==, «равно»;
  • оператор !=, «не равно»;
  • оператор >, «больше»;
  • оператор >=, «больше или равно».

1-20219-07963f.png

Использование оператора «больше/меньше»

Ниже вы увидите простейший пример сравнения строк в Python с помощью соответствующих операторов: > и <. Давайте сравним строки со словами banana и apple:

print("apple" > "banana")

False
print("apple" < "banana")

True

Так как буква «a» находится перед «b», слово apple будет находиться перед словом banana, что логично (то есть banana больше, чем apple). Однако всё сложнее, чем может показаться на первый взгляд. Давайте для наглядности сравним, равны ли слова Apple и apple:

print("apple" == "Apple")

False
print("apple" > "Apple")

True

Мы увидим отсутствие равенства, а всё потому, что в Python одинаковые буквы, имеющие разный регистр, считаются разными символами, и компьютер их различает по присвоенным им уникальным значениям.

Что касается нашей ситуации, то здесь латинская «А» имеет значение 65, в то время как значение строчной «а» равно 97.

Кстати, если хотите узнать уникальное значение какого-нибудь символа, используйте функцию ord:

print(ord("A"))

65

При сравнении символов или строк, Python конвертирует символы в их соответствующие порядковые значения, после чего сравнивает слева направо.

Существует функция chr, преобразовывающая порядковое значение в символ. Пример:

print(chr(1040))

А

Например, кириллическая А соответствует значению 1040. Есть свои значения у цифр, а также вспомогательных знаков, включая «?», «=», пробел.

В принципе, вы всегда можете выполнить сравнение строк в Python, предварительно конвертировав строки в один формат, к примеру, в нижний регистр (используем метод lower):

str1 = "apple"
str2 = "Apple"
str2.lower()
print(str1 == str1)

True

Применение оператора «равенство»

Мы можем проверить, равны ли строки, посредством оператора ==:

print("строка1" == "строка2")

False

Естественно, строки не являются равными, т. к. выполняется точное сравнение в Python. Неравными будут и те строки, которые содержат одинаковые, но переставленные местами символы. В последнем случае есть выход: превратить нашу строку в список, отсортировать, сравнить и вывести содержимое:

strA = "abcde"
strB = "abdec"
print(sorted(list(strA)) == sorted(list(strB)))
print(sorted(list(strA)))
print(sorted(list(strB)))

True
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']

Использование оператора «не равно»

Оператор != выполняет проверку неравенства:

print("abc" != "zxc")

True

Разумеется, результат True, ведь abc не равно zxc.

Применение операторов «больше или равно/меньше или равно»

Если при использовании оператора <= одна строка будет меньше или равна другой, мы получим True.

print("abc" <= "bcd")

True

В нашем случае «abc» меньше.

Аналогично работает и оператор >=:

print("abc" >= "abc")

True

В этой ситуации очевидно, что строки равны.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться