Python: Сравнение строк
Операции сравнения работают не только с числами, но и со строками. В этом случае сравнение идёт по алфавитному порядку символов.
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 — каждое слово начинается с заглавной буквы
Такие методы позволяют проверять строки на нужные условия прямо в коде, без написания дополнительных функций.
Задание
Напишите функцию is_long_word()
, которая возвращает True
, если длина переданного слова больше 5 символов, и False
в противном случае.
Пример работы:
print(is_long_word("apple")) # => False
print(is_long_word("banana")) # => True
Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект
Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества
Ваше упражнение проверяется по этим тестам
import index
def test1():
assert not index.is_long_word("apple") # 5 символов → False
assert index.is_long_word("banana") # 6 символов → True
assert index.is_long_word("pineapple") # 9 символов → True
Решение учителя откроется через:
20:00
