Обробка рядків (strings)

Як працювати з текстом: індекси, зрізи, методи рядків, пошук підрядків, split/join, і красивий вивід.

1 Рядок — це послідовність символів

У Python рядок (str) — це текст, який складається з символів. Його можна перебирати як список: по одному символу.

chars.py
word = "Python"
print(len(word))      # 6
print(word[0])        # P
print(word[-1])       # n

for ch in word:
    print(ch)

Увага

Якщо ти звернешся до символа, якого не існує (наприклад word[99]), буде помилка IndexError.

2 Зрізи (slices)

Зріз дозволяє взяти частину рядка: text[start:end:step].

приклади

s = "programming"
print(s[0:7])   # program
print(s[:3])    # pro
print(s[3:])    # gramming
print(s[::2])   # pormig
print(s[::-1])  # gnimmargorp

правило

end не включається. Тобто s[0:7] бере символи з індексами 0..6.

Хочеш останні 3 символи? s[-3:]

3 Важливо: рядки не змінюються

Рядки в Python — незмінні (immutable). Це означає: ти не можеш змінити один символ “всередині” рядка. Але можеш створити новий рядок.

immutable.py
name = "maksym"
# name[0] = "M"  # так не можна

name2 = "M" + name[1:]
print(name2)  # Maksym

4 Корисні методи рядків

Методи — це готові “дії”, які вміє робити рядок.

Регістр і пробіли

text = "  HeLLo  "
print(text.lower())       # "  hello  "
print(text.upper())       # "  HELLO  "
print(text.strip())       # "HeLLo"

Заміна

msg = "I like cats"
print(msg.replace("cats", "dogs"))
# I like dogs

Пошук

s = "banana"
print(s.find("na"))     # 2
print(s.count("a"))     # 3
print("nan" in s)       # True

Початок/кінець

file = "photo.png"
print(file.endswith(".png"))  # True
print(file.startswith("ph"))  # True
Порада: для перевірки “містить” найпростіше використовувати in, а для позиції — find().

5 split() і join() — магія зі словами

Дуже часто треба перетворити рядок на список слів або навпаки.

split_join.py
sentence = "I love Python"
words = sentence.split(" ")
print(words)  # ['I', 'love', 'Python']

new_sentence = "-".join(words)
print(new_sentence)  # I-love-Python
Якщо написати просто sentence.split() без аргументів — Python сам розіб’є за пробілами (і “з’їсть” зайві).

6 Форматування: f-рядки

Найзручніше вставляти змінні у текст через f-рядки.

fstrings.py
name = "Olia"
score = 95
print(f"Учень: {name}, бал: {score}/100")

Міні-чеклист

  • Перед лапками ставимо f
  • Змінні/вирази пишемо в { }
  • Можна навіть так: {2 + 2}

Висновок

Рядки — це основа тексту в програмах. Ти навчився брати символи, робити зрізи, змінювати регістр, шукати підрядки, розбивати на слова і збирати назад.

len slice lower/upper find split/join