Строка являє собою просту послідовність символів. Будь-яка послідовність символів, вкладена в лапки, у Python вважається строкою; при цьому строки можуть бути вкладені як в одиночні, так і в подвійні лапки:
"This is a string."
'This is also a string.'
Зміна регістру символів у строці.
Одна з найпростіших операцій, що виконуються з строками, дає змогу змінювати регістр символів. Погляньте на наступний фрагмент коду та спробуйте визначити, що в ньому відбувається:
name = "ada lovelace"
print (name.title ())
Збережіть файл з ім'ям name.py і запустіть його. Висновок програми повинен виглядати так:
Ada Lovelace
У цьому прикладі в змінній name зберігається строка, що складається з букв нижнього регістра "ada lovelace". За ім'ям змінної в команді print () слідує виклик методу title (). Метод являє собою дію, яку Python виконує з даними. Символ (.) після name в конструкції name.title() наказує Python застосувати метод title() до змінної name. За ім'ям методу завжди слідує пара круглих дужок, тому що методам для виконання їх роботи часто вимагається додаткова інформація. Ця інформація вказується в дужках. Функції title() додаткова інформація не потрібна, тому в круглих дужках нічого
немає.
Метод title() перетворює перший символ кожного слова в строці до верхнього регістру, тоді як всі інші символи виводяться в нижньому регістрі. Наприклад, дана можливість може бути корисна, якщо у вашій програмі вхідні
значення Ada, ADA і ada повинні розглядатися як одне і те ж ім'я, і всі вони повинні відображатися у вигляді Ada.
Для роботи з регістром також існують інші корисні методи. Наприклад, всі символи строки можна привести до верхнього або нижнього регістру:
name = "Ada Lovelace"
print (name.upper())
print (name.lower())
Програма виводить наступний результат:
ADA LOVELACE
ada lovelace
Метод lower() особливо корисний для зберігання даних. Нерідко програміст не може розраховувати на те, що користувачі введуть всі дані з точним дотриманням регістру, тому строки перед збереженням перетворюються до нижнього регістру. Потім, коли буде потрібно вивести інформацію, використовується регістр, найбільш необхідний для кожної строки.
Конкатенація рядків.
Також часто виникає необхідність в об'єднанні рядків. Уявіть, що ім'я і прізвище зберігаються в різних змінних і ви хочете об'єднати їх для виведення
повного імені:
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print (full_name)
Для об'єднання рядків в Python використовується знак «плюс» (+). У наведеному прикладі повне ім'я будується об'єднанням first_name, пробіл і last_name:
ada lovelace
Такий спосіб об'єднання рядків називається конкатенацією. Ви можете використовувати конкатенацію для побудови складних повідомлень з інформацією, які зберігаються в змінних. Розглянемо приклад:
first_name = "ada"
last_name = "lovelace"
full_name = first_name + "" + last_name
.1. print ( "Hello, " + full_name.title() + "!")
Повне ім'я використовується в точці .1. для виведення привітання, а метод title() забезпечує правильне форматування імені. Цей фрагмент повертає просте, добре відформатоване повідомлення:
Hello, Ada Lovelace!
Конкатенацією також можна скористатися для побудови повідомлення, яке потім зберігається в змінній:
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
.1. message = "Hello, " + full_name.title() + "!"
.2. print (message)
Цей код також виводить повідомлення "Hello, Ada Lovelace!". Проте збереження тексту повідомлення у змінній .1. істотно спрощує завершальну команду
друку .2.
Табуляція і розриви рядків.
У програмуванні терміном «пропуск» (whitespace) називаються такі недруковані символи, як пробіли, табуляції і символи кінця рядка. Пропуски структурують текст, щоб користувачеві було зручніше читати його.
Для включення в текст позиції табуляції використовується комбінація символів
\t, як в точці .1.:
>>> print ( "Python")
Python
.1. >>> print ( "\t Python")
Python
Розриви рядків додаються за допомогою комбінації символів \n:
>>> print ( "Languages: \nPython \nC \nJavaScript")
Languages:
Python
C
JavaScript
Табуляції і розриви рядків можуть поєднуватися в тексті. Скажімо, послідовність "\n \t" наказує Python почати текст з нового рядка, на початку якої розташовується табуляція.
Наступний приклад демонструє вивід одного повідомлення з розбиттям на чотири рядки:
>>> print ( "Languages: \n\tPython\n\tC\n\tJavaScript")
Languages:
Python
C
JavaScript
Розриви рядків і табуляції часто зустрічаються, коли наші програми почнуть виводити відносно довгий текст.
Видалення пробілів (пропусків) у рядках.
Зайві пропуски можуть викликати плутанину в програмах. Для програміста рядки 'python' і ' python ' зовні не відрізняються, але для програми це абсолютно різні строки. Python бачить зайвий пробіл в ' python ' і вважає, що він дійсно важливий - до тих пір, поки ви не повідомите про протилежне. Звертайте увагу на пропуски, тому що в програмах часто доводиться порівнювати рядки, щоб перевірити на збіг їх вміст. Типовий приклад - перевірка імен користувачів при вході на сайт. Зайві пропуски можуть
створювати плутанину і в більш простих ситуаціях. На щастя, Python дозволяє легко видалити зайві пропуски з даних, введених користувачем. Python може шукати зайві пропуски у лівого і правого краю рядка. Щоб переконатися в тому, що біля правого краю (в кінці) рядки немає пропусків, викличте
метод rstrip().
.1.>>> favorite_language = 'python '
.2.>>> favorite_language
'python '
.3.>>> favorite_language.rstrip()
'python'
.4.>>> favorite_language
'python '
Значення, що зберігається в змінній favorite_language в точці .1., містить зайві пропуски в кінці рядка. Коли ви кажете Python вивести це значенням в термінальному сеансі, ви бачите пробіл в кінці значення .2.. коли метод rstrip() працює зі змінною favorite_language в точці .3., цей зайвий пробіл видаляється. Втім, видалення лише тимчасове: якщо знову запросити значення favorite_language, ми бачимо, що рядок не відрізняється від початкового, включаючи зайвий пропуск .4.
Щоб назавжди виключити пропуск з рядка, слід записати урізане значення назад в змінну:
>>> favorite_language = 'python '
.1.>>> favorite_language = favorite_language.rstrip()
>>> favorite_language
'python'
Спочатку пропуски віддаляються в кінці рядка, а потім значення записується в вихідну змінну .1.. Операція зміни значення змінної з наступним його збереженням в вихідній змінної часто виконується в програмуванні. Так значення змінної може змінюватися в ході виконання програми або у відповідь на дії користувача. Пропуски також можна видалити у лівого краю (на початку) рядки за допомогою методу lstrip(), а метод strip() видаляє пропуски з обох кінців:
.1.>>> favorite_language = ' python '
.2.>>> favorite_language.rstrip()
' python'
.3.>>> favorite_language.lstrip()
'python '
.4.>>> favorite_language.strip()
'python'
У цьому прикладі початкове значення містить пропуски на початку і в кінці .1.. потім пропуски видаляються з правого краю .2., з лівого краю .3. і з обох кінців рядка .4.
Експериментуйте з функціями видалення пропусків, це допоможе вам освоїтися із роботою з рядками. На практиці ці функції найчастіше застосовуються для «очищення» вводу даних користувача перед збереженням в програмі.
Запобігання синтаксичним помилкам у рядках.
Синтаксичні помилки зустрічаються в програмах більш-менш регулярно. Синтаксична помилка відбувається тоді, коли Python не розпізнає частина вашої програми як дійсний код Python. Наприклад, якщо вкласти апостроф в одинарні лапки, трапиться помилка. Це відбувається через те, що Python інтерпретує всі символи від першої одинарної лапки до апострофа як рядок. Після цього Python намагається інтерпретувати залишок тексту рядка як код Python, що породжує помилки.
Розберемося, як же правильно використовувати одиночні або подвійні лапки. Збережіть наступну програму у файлі apostrophe.py і запустіть її:
message = "One of Python's strengths is its diverse community."
print (message)
Апостроф знаходиться в рядку, який вкладений у подвійні лапки, тому в інтерпретатора Python не виникає проблем з правильною інтерпретацією наступного рядка:
One of Python's strengths is its diverse community.
Однак при використанні одиночних лапок Python не зможе визначити, де повинна закінчуватися рядок:
message = 'One of Python's strengths is its diverse community.'
print (message)
Програма виводить наступний результат:
File "apostrophe.py", line 1
message = 'One of Python's strengths is its diverse community.'
^ .1.
SyntaxError: invalid syntax
З вихідних даних видно, що помилка відбувається в позиції .1. відразу ж після другої одинарної лапки. Ця синтаксична помилка вказує, що інтерпретатор не розпізнає якусь конструкцію як дійсний код Python. Помилки можуть виникати з різних причин. Синтаксичні помилки будуть часто докучати вам, поки ви вчитеся писати правильний код Python. Крім того, помилки цієї категорії також є найбільш розпливчастими і неконкретними, тому їх особливо важко знаходити і виправляти.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии