Строки неизменяемы
Строка в Python — это неизменяемая последовательность символов. Любой метод строки возвращает новую строку, а исходная остаётся прежней.
text = "hello"
text.upper()
print(text) # hello — исходная строка не изменилась
new_text = text.upper()
print(new_text) # HELLO
Предикатные методы
Предикаты проверяют свойства строки и возвращают True или False.
| Метод | Что проверяет |
|---|---|
isalpha() | Только буквы |
isdigit() | Только цифры |
isalnum() | Только буквы и цифры |
isspace() | Только пробельные символы |
islower() | Все буквы в нижнем регистре |
isupper() | Все буквы в верхнем регистре |
istitle() | Каждое слово с заглавной буквы |
startswith() | Начинается с подстроки |
endswith() | Заканчивается подстрокой |
Поиск подстроки
| Метод | Описание |
|---|---|
find(sub) | Индекс первого вхождения или -1 |
rfind(sub) | Индекс последнего вхождения или -1 |
index(sub) | Индекс первого вхождения или ValueError |
rindex(sub) | Индекс последнего вхождения или ValueError |
count(sub) | Количество непересекающихся вхождений |
Изменение регистра
upper()— все символы в верхнем регистре.lower()— все символы в нижнем регистре.capitalize()— первая буква заглавная, остальные строчные.title()— заглавная буква в начале каждого слова.swapcase()— меняет регистр каждого символа.casefold()— агрессивное приведение к нижнему регистру (для сравнения).
Метод replace()
Заменяет все вхождения подстроки (или первые count штук) на другую подстроку.
text = "I love Python, Python is great"
print(text.replace("Python", "Java"))
print(text.replace("Python", "Java", 1))
split() и join()
split() разбивает строку на части. join() объединяет последовательность строк через разделитель.
text = "apple banana cherry"
words = text.split()
print(words)
print("-".join(words))
strip(), lstrip(), rstrip()
Удаляют пробельные символы (или указанные символы) с краёв строки.
text = " hello world "
print(f"[{text.strip()}]")
print(f"[{text.lstrip()}]")
print(f"[{text.rstrip()}]")
Форматирование строк
Три способа форматирования:
- C-style:
"%s %d" % (name, age) format():"{} {}".format(name, age)- f-strings:
f"{name} {age}"
Современный стиль — f-strings. Они быстрее, читаемее и поддерживают выражения.
Форматирование чисел
pi = 3.14159
print(f"{pi:.2f}") # 3.14
print(f"{1234567:,}") # 1,234,567
print(f"{42:05}") # 00042
print(f"{'hi':>10}") # " hi"