У повсякденному житті програмісту потрібно вирішувати масу завдань. Для цих цілей ідеально підходить мову Python («Пайтон» або «Пітон», на російський манер). Резервне копіювання, створення гри для Android або Windows, читання і збереження листів електронної пошти – не найскладніші завдання для досвідченого програміста. А ось для початківців вивчати Python (роботу з рядками, списками, файлами) здасться казкою, оскільки методи і функції кожного типу даних полегшує життя користувачу.
Що таке строковий тип даних?
«Пітон» дозволяє працювати з числами, символами, файлами, функціями. І труднощів ніде не виникає, оскільки ця мова зручний і простий у своєму використанні. Рядки в Python – тип даних, що дозволяє обробляти текстову інформацію. Довжина введеного тексту може обмежуватися тільки ресурсами комп'ютера. Необхідно пам'ятати, що рядки – незмінний тип даних. Все, що відбувається з початковим текстом присвоюється нової змінної. В Python навчання передбачає вивчення 2 різновидів тексту: звичайні рядки (послідовність байтів) і Unicode-string (перелік символів). В Python скрипти дозволяють використовувати рядкові літерали. Ці символи можуть бути записані за допомогою апострофа, лапок (одинарних або подвійних), зазначених символів, введених тричі, приміром, """applentree""", де n виконує роль Enter при наборі тексту в текстовому редакторі. Зворотна коса риса (зворотній слеш) всередині літералів одержує особливе значення. Вона необхідна для введення спеціальних символів. Слід пам'ятати, що зворотний слеш не повинен бути останнім символом у програмній рядку, інакше компілятор видасть помилку.
Як створити рядок?
В Python робота з рядками припускає або ручне введення тексту в програмі, або висновок запрошення користувачеві, щоб він ввів необхідні символи. Пітон зчитує отримані дані за допомогою стандартної функції input (). Рядки в Python складаються з послідовності символів. Дізнатися їх кількість можна за допомогою функції len (). В Python символ розглядається як цілий рядок, довжина якої дорівнює 1. Будь-який об'єкт в «Пітоні» можна привести до строковому типом даних за допомогою виклику вбудованої функції str (). В Python є кілька класів. Щоб перевести об'єкт з одного типу даних інший, можна скористатися функцією приведення, ім'я якої збігається з ім'ям розряду. Так, int переводить в ціле число, str в рядок, float у речовинний розряд.
Зрізи у рядках
Інакше вони називаються слайсами або slices. Зріз дозволяє витягти з введеного рядка символ, що знаходиться в зазначеному проміжку. Слайс неможливо використовувати без індексації. Адресація починається з 0. Якщо звертатися до рядка з кінця, то індексація починається зі знака -.
Рядок ST
W
O
R
L
D
Індексація
ST[0]
ST[1]
ST[2]
ST[3]
ST[4]
Індексація
ST[-5]
ST[-4]
ST[-3]
ST[-2]
ST[-1]
Розрізняють 3 форми зрізів: Витяг одного символу з усієї рядка St[i], де St – текст, i – номер комірки. Отримання уривка тексту, St[a:b], де St – текст, a і b – початок і кінець проміжку. A включається до зріз, параметр b немає. Якщо в проміжку не вказати b, а поставити двокрапку, то програма поверне уривок, взятий до кінця рядка. Якщо не проставляти параметр a, то слайс бере свій початок з 0 індексу до кінцевого пункту b. Зріз St[a:b:d]дозволяє вибрати конкретний уривок в проміжку з початком і кінцем в b з кроком d.
Операції з рядками
У користувача є можливість використовувати в Python функції роботи з рядками:
Str(X) – переклад будь-якого об'єкта в рядковий тип даних. ST1+ST2 – конкатенація (додавання рядків). ST*n – повторення рядка ST n разів. Min[ST]– повернення мінімального значення з кодової таблиці. Len () – визначення довжини тексту. Max[ST]– отримання максимального значення з таблиці ASCII. St1 in St2 – входження підрядка St1 в St2. Поверне True, якщо St1 присутня в початковому тексті. St1 not in St2 – перевіряє відсутність St1 в St2 і повертає True при вірності твердження.
Методи рядкового типу даних
В Python робота з рядками передбачає використання кількох методів: St.find і St.rfind – методи, необхідні для пошуку потрібного уривка у введеному тексті. Їх відмінність у тому, що цей процес почнеться з різних кінців. Так, St.find шукає з початку, а St.rfind з кінця. Методи повертає індекс першого входження шуканого уривка. Можна вказувати зрізи для пошуку в конкретному проміжку. St.replace (a_old,b_new) необхідний для заміни всі входження підрядка у введеному тексті. Замість a_old буде b_new. Якщо вказати додатковий параметр count (St.replace (a_old,b_new, count)), то заміна відбуватиметься кількість разів, не більше, ніж count. St.count – метод, необхідний для підрахунку кількості входження підрядка S у введеному тексті. Кількість перетинів не входить у кінцевий результат. Можна вказати проміжок, на якому буде відбуватися операція. St.join необхідний для об'єднання списку слів в рядок. St.split – метод, що дозволяє перетворити рядок у списку слів. В дужках в лапках вказується роздільник. Найчастіше це пробіл St.split(" "). St.strip – видалення пробілів в початку і в кінці рядка. St.capitalize робить перший символ у тексті заголовним. St.swapcase дозволяє перевести регістр букв в протилежний. St.upper дає можливість зробити всі букви великими в рядку. St.lower дозволяє перевести текст в нижній регістр. Всі літери стануть малими.
Форматна рядок
В Python робота з рядками приємна і тим, що користувачеві надається можливість відформатувати текст за вказаною подобою. Тобто програміст задає умову, яким повинен відповідати введений уривок. Подібним чином можна виводити на екран таблиці без підключення спеціального модуля PTable. Називається цей прийом форматна рядок. До прикладу, якщо ввести в IDLE print "%s is %d" % ("one",1) , то результатом стане one is 1 . % дозволяє підключити форматную рядок і є її основним оператором. В Python є символи, що йдуть як доповнення до %.
Форматний символ Роз'яснення %з
Висновок одиничного символу.
%s
Рядковий вираз.
%d
Вказівка десяткового цілого числа.
%f
Висновок речовинного (дробового) десяткового числа.
Є й інші спеціальні символи, однак вони використовуються у вирішенні складних завдань.
Кілька завдань з рішеннями
Таку мову як Python навчання дозволяє проходити швидше і простіше, оскільки програмний код лаконічний і всеосяжний. Щоб переконатися в цьому, потрібно розібрати кілька завдань. 1. Дано рядок. Отримати новий текст, в якому відбувається заміна всіх входжень першого символу "$", крім нього самого. Алгоритм: Написати функцію, в якій: char присвоюється перший символ рядка; length визначає довжину рядка; str1 через метод replace замінює char на символ "$"; str1 записує перший символ і вийшло вираження від попередньої операції; повернути значення str1. Вивести на екран результат обчислення функції.
2. Дано рядок. Написати код, в якому до кінця слова буде додаватись "ing", якщо довжина слова >2. Якщо слово закінчується на "ing", то додати до рядку "ly". Якщо довжина менше 2 залишити текст без змін. Алгоритм: Написати функцію, в якій: визначається довжина тексту; перевіряється умова: якщо довжина >2 і якщо слово закінчується на "ing", то додати до такої рядку "ly", в іншому випадку додати "ing"; повернути значення отриманої змінної. Вивести на екран результати функції з кількома рядками.
Для закріплення результату написання коду в «Пітоні» необхідно вирішити ще кілька завдань з рядками.