Написання рядків
Рядки пишемо в лапках або апострофах. У Python 3 рядки також можуть містити символи з діакритикою.
a = "Це рядок"
b = 'Це також рядок'
print(a, b)
Індексація
Ми отримуємо доступ до окремих символів рядка за допомогою індексації з використанням квадратних дужок. Увага: індексуємо з нуля. Python (на відміну від більшості інших мов програмування) дозволяє індексувати навіть з кінця за допомогою від’ємних чисел.
text = "порося"
text[0]     # перша літера => 'п'
text[1]     # друга літера => 'о'
text[6]     # шоста, остання літера => 'я'
text[-1]    # остання літера => 'я'
text[-2]    # передостання літера => 'с'
Ми можемо використовувати двокрапку для індексування підрядка.
text = "панорама"
print(text[2:7])  # від другої до сьомої позиції => нора
print(text[:3])   # перші 3 символи => пан
print(text[-4:])  # останні 4 знаки => рама
Більш просунутим елементом є використання двох двокрапок, де третє значення вказує на довжину стрибка:
text = "Бігає-лисиця-по-полю"
print(text[5:15:2])  # з 5-ї по 14-ту позиції кожні 2 => -иияп
print(text[::3])     # від початку до кінця, кожні 3 => Бали--л
print(text[::-1])    # задом наперед =>юлоп-оп-яцисил-єагіБ
Ітерація за рядком
Ми можемо легко переглядати окремі символи рядка за допомогою циклу for.
text = "соловій"
for letter in text:
    print("літера:", letter)
Незмінність рядків
Рядки є незмінним типом даних у Python. Це одна з рис, якими він відрізняється від списків. Незмінність означає, що ми не можемо змінити підлітеру в символі. Нам потрібно створити новий рядок, у якому буде змінена відповідна літера.
text = "кілець"
text[2] = "н"                 # TypeError - рядок не дозволяє змінювати символи
text = text[:2]+"н"+text[3:]  # ми створюємо новий, змінений рядок
print(text)
Операції з рядками
Рядки можна додавати (= об’єднувати). Ми також можемо множити рядки на ціле число (= багаторазово об’єднувати). Інші корисні операції включають пошук довжини (len) або перевірку на наявність підрядка (in).
text = "петр"
text + "ключ"  # => петрключ
3*text         # => петрпетрпетр
len(text)      # => 4
"е" in text    # => True
Рядки — це об’єкти, які мають низку доступних корисних методів, які ми викликаємо за допомогою крапкової нотації. Прикладами є перетворення у верхній/нижній регістр (upper, lower), розділення рядка відповідно до вказаного символу (split) або заміна підрядка (replace):
text = "Житомир"
text.upper()               # => ЖИТОМИР
text.lower()               # => житомир
text.split("о")            # => ['Жит', 'мир']
text.replace("том", "хет") # => Жихетир
Зауважте, що тут ми використовуємо так звану точкову нотацію: ми пишемо text.upper(), а не звичайний виклик функції у формі upper(text). Це пов’язано з тим, що рядки представлено як об’єкти.
Операції з символами
Під час роботи з рядками іноді корисними є операції для маніпулювання окремими символами, особливо функції ord і chr, які перетворюють символи в цілі числа і назад:
- ord(c)повертає порядковий номер символу- c,
- chr(i)повертає символ із порядковим номером- i.
«Послідовний номер» означає номер у кодуванні Unicode. Для базових завдань програмування достатньо знати, що в цьому кодуванні букви розташовані за алфавітом (на жаль, це стосується лише літер англійського алфавіту). Ось як ми можемо написати літери англійського алфавіту:
start = ord('A')
for i in range(26):
    print(chr(start + i))