📖 Теория: Summary session 6

⚡ Кратко

Урок повторяет методы строк и форматирование. Основные группы методов: предикаты, поиск, изменение регистра, замена, разделение/объединение, очистка краёв. Форматирование: C-style, format(), f-strings.

  • Строки неизменяемы — методы возвращают новые строки.
  • Предикаты возвращают True/False.
  • find() безопасен (возвращает -1), index() вызывает ValueError.
  • f-strings — самый современный способ форматирования.

Строки неизменяемы

Строка в 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"