You are on page 1of 29

Рядки

Мета уроку

 Ознайомитися зі складним типом даних –


Рядок (String), правилами використання його в
програмах, основними операціями з рядками та
методами.
 Навчитися використовувати тип даних
Рядок (String) при створенні програм.
 Рядок (String) – це складний тип даних, який представляє собою
упорядковані послідовності символів, що використовуються для
зберігання і представлення текстової інформації.

 Рядок можна створити, застосувавши подвійні або одинарні лапки.


Однак, початок і кінець рядка повинні обрамлятися однаковим типом
лапок.

 Наприклад:

 print (“Як тебе не любити, Києве мій!”)

 print (‘Як тебе не любити, Києве мій!’)

 Щоб ввести більше одного рядка у рядкову величину (багаторядковий


рядок), треба використати троє одинарних або подвійних лапок (‘ ‘
‘); там, де треба перенести рядок, натиснути ENTER:

 print (’’’Як тебе не любити,


Застосування потрійних одинарних лапок надає
можливість комбінувати подвійні й одинарні лапки
в одній стрічці (якщо цього потребує текст) без
синтаксичних помилок.

Наприклад,
текст=’’’Він звернувся до присутніх:”Доброго
вам усім здоров’я! Наступної п’ятниці ми
повинні закінчити цю роботу.” ’’’
Можна використати екранування – додати обернений
слеш \ перед кожними лапками всередині стрічки
(при виведенні на екран \ не з’являється у стрічці):
текст=‘Він звернувся до присутніх:”Доброго
вам усім здоров\’я! Наступної п\’ятниці ми
повинні закінчити цю роботу.” ’
або
текст=“Він звернувся до присутніх:\”Доброго
вам усім здоров’я! Наступної п’ятниці ми
повинні закінчити цю роботу.\” “
Підстановка значень у рядки
 Щоб вивести повідомлення, що містить певне значення,

застосовується знак %s – маркер на позначення величини,

яку пізніше можна буде додати у рядок.


 Наприклад:
 мійрахунок=10000
 текст=‘На моєму рахунку в банку знаходиться %s
гривень’
 print (текст % мійрахунок)
Можна підставляти різні значення на місце тимчасового
замінника %s, користуючись різними змінними
Можна використовувати в одному рядку більше одного
замінника, при цьому обов’язково брати значення для
підстановки у дужки. Порядок значень у дужках збігається з
порядком введення їх у рядок.
Еsсаре-послідовності

Деякі еsсаре-послідовності працюють передбаченим чином лише


тоді, коли програма запускається з операційної системи, а не в
IDLE. Такий, зокрема, символ системного динаміка.
Якщо запустити її в IDLE, на екрані з’явиться квадратик, а
комп’ютер збереже мовчання. Але, якщо запустити цю програму з
ОС, тобто двічі клацнути на значку файла, то системний динамік
прозвучить.
Довжина рядка
 Існує спеціальна функція len (), яка дозволяє
виміряти довжину рядка. Результатом
виконання даної функції є число, що показує
кількість символів в рядку.
 Також для рядків існують операції
конкатенації (+) і дублювання (*).

print(len ('It is a long string'))


#Результат: 19
print('!!!' + ' Hello, World ' + '!!!‘)
#Результат: '!!! Hello, World !!!‘

print( '-' * 20)


#Результат: '--------------------'
Операції з рядками
 Функція int переводить рядок у послідовність цілих чисел.
 Функція float переводить рядок у послідовність дійсних чисел.
 str(X) – переклад будь-якого об'єкта в рядковий тип даних.
 len () – визначення довжини тексту.
 ST1+ST2 – конкатенація (додавання рядків).
 ST*n – повторення рядка ST n разів.
 min[ST]– отримання мінімального значення з кодової таблиці
ASCII.
 max[ST]– отримання максимального значення з кодової таблиці
ASCII.
 St1 in St2 – входження підрядка St1 в St2. Поверне True, якщо St1
присутній в початковому тексті.
 St1 not in St2 – перевіряє відсутність St1 в St2 і повертає True при
вірності твердження.
Множення рядків
 print(10 * ’a’)
 Результат роботи програми: аааааааааа
Індексація символів у рядку
 У послідовностях важливий порядок символів, у кожного
символу в рядку є унікальний порядковий номер – індекс.
Можна звертатися до конкретного символу в рядку і отримувати
його з допомогою оператора індексування, який представляє
собою квадратні дужки з номером символу в них.

tday = 'morning, afternoon, night’


print(tday[1])
#Результат: 'o'
print( tday[4])
#Результат: 'i‘

 Індексація починається не з одиниці, а з нуля. Тому


вираз print(tday [1]) призвів до витягнення другого символу.
 Коли потрібно витягти перший символ, то оператор індексування
повинен виглядати так: tday [0].
 Дозволено витягувати символи, починаючи відлік з
кінця.
 У цьому випадку відлік починається з -1 (останній
символ).

tday = 'ранок, день, ніч'


print( tday[0])
#Результат: 'р'
print(tday[-1])
#Результат: 'ч'
print(tday[-3])
#Результат: 'н'
 Очевидно, що зручніше працювати не з самими
рядками, а зі змінними, які на них посилаються.
 Результат виконання виразу індексування можна
присвоїти іншій змінній.

a = "very big string«


print(a[6])
#Результат: 'i'
b = a[0]
print( b)
#Результат: 'v'
Зріз рядка (підрядок)
 Можна витягати з рядка не один символ, а декілька, тобто
отримувати зріз (підрядок).
 Оператор витягнення зрізу з рядка виглядає так: [X : Y]. X -
це індекс початку зрізу, а Y – його закінчення; причому
символ з номером Y в зріз вже не входить.
 Якщо відсутній перший індекс, то зріз береться від початку до
другого індексу; за відсутності другого індексу, зріз береться
від першого індексу до кінця рядка.
tday = 'morning, afternoon, night'
print(tday[0:7])
#Результат: 'morning'
print(tday[9:-7])
#Результат: 'afternoon'
print( tday[-5:])
#Результат: 'night'
print( tday[:3])
#Результат: 'mor'
 Крім того, можна витягати символи не підряд, а
через певну кількість символів. У такому випадку
оператор індексування виглядає так: [X : Y : Z]; Z –
це крок, через який здійснюється вибір елементів.

str4 = "Full Ball Fill Pack Ring"


print(str4[::5])
#Результат: 'FBFPR'
print(str4[0:15:2])
#Результат: 'Fl alFl '
Приклади

s = 'spameggs'
s[3:5] # 'me'
s[2:-2] # 'ameg'
s[:6] # 'spameg'
s[1:] # 'pameggs'
s[:] # 'spameggs'
s[::-1] # 'sggemaps'
s[3:5:-1] # ‘ ‘
s[2::2] # 'aeg'
Методи рядків
 Викликаючи методи рядків, необхідно
пам'ятати, що рядки у Python відносять
до категорії незмінних послідовностей.
Інакше кажучи, всі функції і методи
можуть лише створювати новий рядок.
Тому всі рядкові методи
повертають новий рядок, за допомогою
якого потрібно надати значення змінній.
Приклади використання
функцій і методів рядків
 S = 'str'; S = "str"; S = '''str'''; S = """str""" —
літерали рядків;
 S = "s\np\ta\nbbb" — екрановані послідовності;
 S = r"C:\temp\new" — пригнічення
екранування;
 S = b"byte" — рядок байтів;
 S1 + S2 — додавання;
 S1 * 3 — повторення;
 S[i] — звернення за індексом;
 S[i:j:step] — витяг зрізу;
 len(S) — довжина рядка;
 S.find(str, [start],[end]) — пошук підрядка в рядку,
повертає номер першого входження або -1;
 S.rfind(str, [start],[end]) — пошук підрядка в рядку,
повертає номер останнього входження або -1;
 S.index(str, [start],[end]) — пошук підрядка в рядку,
повертає номер першого входження або викликає ValueError;
 S.rindex(str, [start],[end]) — пошук підрядка в рядку,
повертає номер останнього входження або викликає
ValueError;
 S.replace(шаблон, заміна) — заміна шаблону;
 S.split(символ) — розбиття рядка за роздільником;
 S.isdigit() — чи складається рядок з цифр;
 S.isalpha() — чи складається рядок з літер;
 S.isalnum() — чи складається рядок з цифр або літер;
 S.islower() — чи складається рядок із символів у нижньому
регістрі;
 S.isupper() — чи складається рядок із символів у верхньому
регістрі;
 S.isspace() — чи складається рядок з невідображуваних
символів (пробіл, ознаки кінця сторінки '\f' і рядка '\n',
переведення каретки '\r', горизонтальна табуляція '\t' і
вертикальна табуляція '\v');
 S.istitle() — чи починаються слова в рядку з великої
літери;
 S.upper() — перетворення рядка до верхнього регістру;
 S.lower() — перетворення рядка до нижнього регістру;
 S.startswith(str) — чи починається рядок S з шаблону str;
 S.endswith(str) — чи закінчується рядок S шаблоном str;
 S.join(список) — збірка рядка зі списку з роздільником S;
 ord(символ) — ASCII код символу;
 chr(число) — символ із вказаним кодом ASCII;
 S.capitalize() — переводить перший символ рядка у
верхній регістр, а всі інші — в нижній;
 S.center(width, [fill]) — повертає відцентрований рядок, по краях
якого стоїть символ fill (пробіл по замовчуванню);
 S.count(str, [start],[end]) — повертає кількість непересічних
входжень підрядка в діапазоні [початок, кінець] (0 і довжина рядка як
усталено);
 S.expandtabs([tabsize]) — повертає копію рядка, в якому всі символи
табуляції замінено одним або кількома пропусками залежно від
поточного стовпчика. Якщо TabSize не вказано, розмір табуляції — 8
пробілів;
 S.lstrip([chars]) — видалення символів пробілів на початку рядка;
 S.rstrip([chars]) — видалення символів пробілів в кінці рядка;
 S.strip([chars]) — видалення символів пробілів на початку і в кінці
рядка;
 S.partition(шаблон) — повертає кортеж, що містить частину перед
першим шаблоном, сам шаблон, і частину після шаблону. Якщо
шаблон не знайдено, повертається кортеж, що містить сам рядок, а
потім два порожніх рядки;
 S.rpartition(sep) — повертає кортеж, що містить частину перед
останнім шаблоном, сам шаблон, і частину після шаблону, якщо
шаблон не знайдений, повертається кортеж, що містить два порожні
рядки, а потім сам рядок;
 S.swapcase() — перекладає символи нижнього
регістра в верхній, а верхнього — в нижній;
 S.title() — першу букву кожного слова переводить
в верхній регістр, а всі інші в нижній;
 S.zfill(width) — робить довжину рядка не
меншою width, в разі потреби заповнює перші
символи нулями;
 S.ljust(width, fillchar=" ") — робить довжину
рядка не меншою width, в разі потреби заповнює
останні символи символом fillchar;
 S.rjust(width, fillchar=" ") — робить довжину
рядка не меншою width, в разі потреби заповнює
перші символи символом fillchar;
Практична робота
1. Присвойте змінній з будь-який рядок, що
складається не менше ніж з 8 символів. Вийміть з
рядка перший символ, потім останній, третій з
початку і третій з кінця. Виміряйте довжину
вашого рядка.

2. Присвойте змінній довільний рядок довжиною


10-15 символів та отримайте з неї наступні зрізи:

 перші вісім символів;

 чотири символи з центру рядка;


Використана література

1. Джейсон Р. Бріґґс. Python для дітей. Веселий


вступ до програмування / перекл. з англ. Львів:
Видавництво Старого Лева, 2018. 400 с.
2. В. Руденко, Н. Речич, В. Потієнко.
Інформатика. Профільний рівень. Підручник
для 10 класу. / Харків: Видавництво «Ранок»,
2019. 256 с.
3. І. Скляр, А. Ставровський. Базовий курс
програмування для фізико-математичних
шкіл. Навч. посібник. / Київ: Видавництво
«Агентство Україна», 2014. 272 с.

You might also like