Операции сравнения работают не только с числами, но и со строками. В этом случае сравнение идёт по алфавитному порядку символов.
print("apple" < "banana") # => True
print("cat" > "dog") # => False
print("abc" == "abc") # => True
print("hello" != "world") # => True
Здесь "apple" < "banana"
, потому что буква "a"
в слове apple идёт раньше буквы "b"
в слове banana.
Напишем функцию, которая проверяет, начинается ли слово с заданной буквы. Для этого возьмём первый символ строки и сравним его с нужной буквой.
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
. То есть порядок вычисления такой:
- Сначала считаются аргументы выражения (например, длина строки).
- Потом выполняется операция сравнения.
Так можно комбинировать разные операции, получая более сложные проверки.
Полезные предикаты
У строк в 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 — каждое слово начинается с заглавной буквы
Такие методы позволяют проверять строки на нужные условия прямо в коде, без написания дополнительных функций.