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