Зарегистрируйтесь, чтобы продолжить обучение

Сравнение строк Основы Python

Операции сравнения работают не только с числами, но и со строками. В Python строки сравниваются лексикографически: посимвольно слева направо по числовым кодам символов (Unicode). Для латинских букв эти коды совпадают с ASCII.

print("apple" < "banana")   # => True
print("cat" > "dog")        # => False
print("abc" == "abc")       # => True
print("hello" != "world")   # => True

Здесь "apple" < "banana", потому что код a (97) меньше кода b (98) — первый символ решает исход сравнения. Код символа можно посмотреть так: ord('a')97.

print(ord("a")) # => 97
print(ord("b")) # => 98

Сравнение чувствительно к регистру — 'Z' (90) < 'a' (97). Пример сравнения, где первые буквы разного регистра:

print("Zebra" < "apple")    # True — 'Z'(90) < 'a'(97)
print("apple" < "Banana")   # False — 'a'(97) > 'B'(66)
print("Apple" < "apple") # False  —  'A'(65) < 'a'(97)

Напишем функцию, которая проверяет, начинается ли слово с заданной буквы. Для этого возьмём первый символ строки и сравним его с нужной буквой.

def starts_with(word: str, letter: str) -> bool:
    return word[0] == letter

print(starts_with("apple", "a"))   # => True
print(starts_with("banana", "a"))  # => False

Операции сравнения — это такие же выражения, как и арифметические. Это значит, что в них можно подставлять не только готовые значения, но и другие выражения как в примере выше: word[0]. Например, вместо числа можно использовать результат работы функции len, которая возвращает длину строки:

print(len("apple") > 3)   # => True, потому что len("apple") = 5
print(len("hi") > 3)      # => False, потому что len("hi") = 2

В примере выше, сначала выполняется функция len("apple"), результатом будет число 5. Потом это число сравнивается с 3. То есть порядок вычисления такой:

  1. Сначала считаются аргументы выражения (например, длина строки).
  2. Потом выполняется операция сравнения.

Так можно комбинировать разные операции, получая более сложные проверки.

Полезные предикаты

У строк в Python есть много встроенных методов-предикатов. Они возвращают True или False и помогают проверять разные свойства строки. Ниже приведены самые часто используемые:

print("hello".startswith("he"))   # True — строка начинается с "he"
print("hello".endswith("lo"))     # True — строка заканчивается на "lo"

print("123".isdigit())            # True — все символы являются цифрами
print("abc".isalpha())            # True — все символы являются буквами
print("abc123".isalnum())         # True — строка состоит только из букв и цифр

print("   ".isspace())            # True — строка содержит только пробелы
print("Hello".islower())          # False — не все символы в нижнем регистре
print("HELLO".isupper())          # True — все символы в верхнем регистре
print("Title Case".istitle())     # True — каждое слово начинается с заглавной буквы

Такие методы позволяют проверять строки на нужные условия прямо в коде, без написания дополнительных функций.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff