Написання рядків
Рядки пишемо в лапках або апострофах. У 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))