Сайт в активній розробці
Рядок представляє послідовність символів у кодуванні Unicode, укладених у лапки. Причому для визначення рядків Python дозволяє використовувати як одинарні, так і подвійні лапки:
Якщо рядок довгий, його можна розбити на частини та розмістити на різних рядках коду. У цьому випадку весь рядок полягає в круглі дужки, а її окремі частини - у лапки:
Якщо ж ми хочемо визначити багаторядковий текст, такий текст полягає в потрійні подвійні або одинарні лапки:
При використанні потрійних одинарних лапок не варто плутати їх із коментарями: якщо текст у потрійних одинарних лапках присвоюється змінною, то це рядок, а не коментар.
Рядок може містити ряд спеціальних символів – керуючих послідовностей або escape-послідовності. Деякі з них:
\ : дозволяє додати всередину рядки слєш
\' : дозволяє додати до рядка одинарну лапку
\" : дозволяє додати всередину рядка подвійну лапку
\n : здійснює перехід на новий рядок
\t : додає табуляцію (4 відступи)
Використовуємо деякі послідовності:
Консольне виведення програми:
Хоча подібні послідовності можуть допомогти в деяких справах, наприклад, помістити в рядок лапку, зробити табуляцію, перенесення на інший рядок. Але вони також можуть заважати. Наприклад:
Тут змінна path містить певний шлях до файлу. Однак всередині рядка зустрічаються символи \n, які будуть інтерпретовані як керуюча послідовність. Так, ми отримаємо наступний консольний висновок:
Щоб уникнути подібної ситуації, перед рядком ставиться символ r
Python дозволяє вставляти у рядок значення інших змінних. Для цього всередині рядка змінні розміщуються у фігурних дужках {}, а перед усім рядком ставиться символ f :
У цьому випадку на місце {userName}вставлятиметься змінна userName. Аналогічно замість {userAge} буде вставлятися значення змінної userAge.
І ми можемо звернутися до окремих символів рядка за індексом у квадратних дужках:
Індексація починається з нуля, тому перший символ рядка матиме індекс 0. А якщо ми спробуємо звернутися до індексу, якого немає в рядку, ми отримаємо виняток IndexError. Наприклад, у разі вище довжина рядка 11 символів, тому його символи матимуть індекси від 0 до 10 символів.
Щоб отримати доступ до символів, починаючи з кінця рядка, можна використовувати негативні індекси. Так, індекс -1 представлятиме останній символ, а -2 - передостанній символ і так далі:
Працюючи з символами слід враховувати, що рядок - це незмінний (immutable) тип, тому якщо спробуємо змінити якийсь окремий символ рядка, ми отримаємо помилку, як у наступному випадку:
Ми можемо лише повністю перевстановити значення рядка, надавши їй інше значення.
За допомогою циклу for можна перебрати всі символи рядка:
При необхідності ми можемо отримати з рядка не лише окремі символи, а й підрядок. Для цього використовується наступний синтаксис:
string[:end]: вилучається послідовність символів починаючи з 0-го індексу за індексом end (не включаючи)
string[start:end]: вилучається послідовність символів починаючи з індексу start за індексом end (не включаючи)
string[start:end:step]: вилучається послідовність символів починаючи з індексу start за індексом end (не включаючи) через крок step
Використовуємо всі варіанти отримання підрядку:
Однією з найпоширеніших операцій із рядками є їхнє об'єднання чи конкатенація. Для об'єднання рядків застосовується операція додавання:
З об'єднанням двох рядків все просто, але що, якщо нам треба скласти рядок та число? У цьому випадку необхідно привести число до рядка за допомогою функції str() :
Для повторення рядка певну кількість разів застосовується операція множення:
Особливо слід сказати про порівняння рядків. При порівнянні рядків приймається до уваги символи та їх регістр. Так, цифровий символ умовно менше ніж будь-який алфавітний символ. Алфавітний символ у верхньому регістрі умовно менший, ніж алфавітні символи у нижньому регістрі. Наприклад:
Тому рядок "1a" умовно менший, ніж рядок "aa". Спочатку порівняння йде за першим символом. Якщо початкові символи обох рядків є цифрами, то меншою вважається менша цифра, наприклад, "1a" менше, ніж "2a".
Якщо початкові символи представляють алфавітні символи у тому самому регістрі, то дивляться по алфавіту. Так, "aa" менше, ніж "ba", а "ba" менше, ніж "ca".
Якщо перші символи однакові, до уваги беруться другі символи за їх наявності.
Залежність від регістру який завжди бажана, оскільки по суті ми маємо справу з однаковими рядками. У цьому випадку перед порівнянням ми можемо привести обидва рядки до одного з регістрів.
Функція lower() наводить рядок до нижнього регістру, а функція upper() - до верхнього.
Оскільки рядок містить символи Unicode, то за допомогою функції ord() ми можемо отримати числове значення для символу кодування Unicode:
Для отримання довжини рядка можна використовувати функцію len() :
За допомогою виразу term in string можна знайти підрядок term у рядку string. Якщо підрядок знайдено, то вираз поверне значення True, інакше повертається значення False: