Урок 9. Рядки як послідовності символів

Рядки вже згадувалися в уроці про типи даних; розглянемо їх більш докладно.

Рядок (String) – це складний тип даних, що представляє собою послідовність символів.

Рядки в мові програмування Python можуть укладатися як в одиночні, так і подвійні лапки. Однак, початок і кінець рядка повинні обрамлятися однаковим типом лапок.

Існує спеціальна функція len (), яка дозволяє виміряти довжину рядка. Результатом виконання даної функції є число, що показує кількість символів в рядку.

Також для рядків існують операції конкатенації (+) і дублювання (*).

>>> len ('It is a long string')
19
>>> '!!!' + ' Hello World ' + '!!!'
'!!! Hello World !!!'
>>> '-' * 20 '--------------------'

У послідовностях важливий порядок символів, у кожного символу в рядку є унікальний порядковий номер – індекс. Можна звертатися до конкретного символу в рядку і отримувати його з допомогою оператора індексування, який представляє собою квадратні дужки з номером символу в них.

>>> 'morning, afternoon, night'[1]
'o'
>>> tday = 'morning, afternoon, night'
>>> tday[4]
'i'

У прикладі, вираз ‘morning, afternoon, night'[1] призвів до витягнення другого символу. Справа в тому, що індексація починається не з одиниці, а з нуля. Тому, коли потрібно витягти перший символ, то оператор індексування повинен виглядати так: [0]. Також дозволено витягувати символи, починаючи відлік з кінця. У цьому випадку відлік починається з -1 (останній символ).

>>> tday = 'ранок, день, ніч'
>>> tday[0]
'р'
>>> tday[-1]
'ч'
>>> tday[-3]
'н'

Очевидно, що зручніше працювати не з самими рядками, а зі змінними, які на них посилаються. Результат виконання виразу індексування можна присвоїти іншій змінній.

>>> a = "very big string"
>>> a[6]
'i'
>>> b = a[0]
>>> b
'v'

Можна витягати з рядка не один символ, а декілька, тобто отримувати зріз (підрядок). Оператор витягнення зрізу з рядка виглядає так: [X: Y]. X – це індекс початку зрізу, а Y – його закінчення; причому символ з номером Y в зріз вже не входить. Якщо відсутній перший індекс, то зріз береться від початку до другого індексу; за відсутності другого індексу, зріз береться від першого індексу до кінця рядка.

>>> tday = 'morning, afternoon, night'
>>> tday[0:7]
'morning'
>>> tday[9:7]
'afternoon'
>>> tday[5:]
'night'
>>> tday[:3]
'mor'

Крім того, можна витягати символи не підряд, а через певну кількість символів. У такому випадку оператор індексування виглядає так: [X: Y: Z); Z – це крок, через який здійснюється вибір елементів.

>>> str4 = "Full Ball Fill Pack Ring"
>>> str4[::5]
'FBFPR'
>>> str4[0:15:2]
'Fl alFl '

Практична робота