1 of 26

Рядковий тип даних

Нова українська школа

Урок 42

Інформатика 8

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 26

Рядковий тип даних

Для опрацювання текстових даних у мові програмування Python існує тип даних str (від англ. string — рядок).

Початок і кінець рядка позначають лапками одного виду.

Значенням величини типу str є послідовність символів, яку у виразах беруть в:

або

одинарні лапки

подвійні лапки

' '

'' ''

s = 'це рядок'

s = "це рядок"

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

3 of 26

Рядковий тип даних

Рядок із апострофом слід брати в подвійні лапки, і навпаки:

s1 = "Я, сім'я, Україна"

s2 = 'Фільм "Земля" (реж. О. Довженко)'

Якщо рядок містить як апострофи, так і лапки, перед тими з них, що збігаються з обмежувачами, ставлять символ:

s3 = "Сім'я дивиться фільм \"Земля\""

\

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

4 of 26

Рядковий тип даних

Величину будь-якого типу можна перетворити на рядок функцією str().

Програмний код

Результат

'150000.0'

'0.3333333333333333'

'15'

s1=str(1.5e+5)

print(s1)

s2=str(1/3)

print(s2)

s3=str(15)

print(s3)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

5 of 26

Доступ до символів у рядку

Для опрацювання всіх символів рядка зручно скористатися циклом:

for <змінна> in <рядок>

Під час виконання такого циклу змінна почергово набуває значень окремих символів рядка.

Виведемо символи рядка, введеного з клавіатури, поставивши після кожного з них двокрапку.

країна

к:р:а:ї:н:а:

s = input()

for c in s:

print(c, end = ':')

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

6 of 26

Доступ до символів у рядку

До певного символу в рядку можна звернутися за його індексом (номером у рядку). Нумерація зростає від 0 (від початку рядка) або спадає від -1 (від кінця рядка).

Програмний код

Результат

р

д

s = 'Це рядок'

print(s[3])

print(s[-3])

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

7 of 26

Доступ до символів у рядку

Отриманий за індексом символ можна присвоїти іншій змінній.

Програмний код

Результат

я

s = 'Сонечко яскраво сяє'

b = s[8]

print(b)

Якщо спробувати отримати доступ до індексу за межами діапазону або використовувати числа, відмінні від цілих (наприклад, числа з рухомою комою), Python видасть помилку.

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

8 of 26

Доступ до символів у рядку

Із рядка можна добувати зріз: копіювати деяку послідовність символів рядка (не обов’язково суміжних) за певним правилом.

Команда добування зрізу з рядка:

а = s[i: j: step]

змінна, в яку зберігаються добуті символи

a

індекс початку зрізу

і

індекс межі кінця зрізу (не входить у зріз)

j

крок, з яким вибираються символи

step

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

9 of 26

Доступ до символів у рядку

Розглянемо застосування операції добування зрізу на прикладі рядка:

s = 'Сонечко яскраво сяє'

Приклад

Опис

Результат

a = s[8:15]

Зріз від символу з номером 8 рядка s включно до символу з номером 14

a = 'яскраво'

a = s[:7]

Зріз від початку рядка до символу з номером 6

a = 'Сонечко'

a = 'яскраво'

a = 'Сонечко'

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

10 of 26

Доступ до символів у рядку

Продовження…

s = 'Сонечко яскраво сяє'

Приклад

Опис

Результат

a = s[8:]

Зріз від символу з номером 8 рядка s до кінця рядка

a = 'яскраво сяє'

a = s[::2]

Копіювання символів з рядка s із кроком 2

a = 'Снчоякаосє'

a = s[::-1]

Запис символів рядка s у зворотному порядку

a = 'єяс оваркся окченоС'

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

11 of 26

Дії над рядковими величинами

Рядки в Python є незмінюваними послідовностями.

Спроба замінити символ у рядку викликає помилку.

Програмний код

Результат

TypeError: 'str' object does not support item assignment

s = 'Сонечко'

s[2] = 'л'

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

12 of 26

Дії над рядковими величинами

Згадаймо прийоми опрацювання рядків.

Операція

Опис

Приклад

len(s)

Кількість символів у рядку

k = len('Сорока')

# k = 6

subs in s

Визначення наявності підрядка subs у рядку s

a = 'y' in 'Python'

# a = True

s1+s2

Об’єднання рядків s1 і s2 в один рядок s (конкатенація)

s = 'Сонце' + ' ' + 'сяє'

# s = 'Сонце сяє'

n*s

Дублювання рядка s n разів

s1 = '+’*4

# s1 = '++++'

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

13 of 26

Дії над рядковими величинами

Відповідні операції доступні й у вигляді методів рядкових об’єктів. У наведених прикладах методи викликаються для змінної s, яка містить опрацьовуваний рядок.

Назва методу

Опис дії

s.find(s1)

Шукає в рядку s підрядок s1 і повертає номер першого символу шуканого підрядка в рядку або -1, якщо в s немає підрядка s1

s.replace(sfind, sins)

У рядку s замінює підрядок sfind підрядком sins

s.count(subs)

Повертає кількість входжень підрядка subs у рядок s

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

14 of 26

Дії над рядковими величинами

Рядкові методи утворюють новий рядок. Для подальшого використання результату виконання, його слід зберегти в змінній:

Програмний код

Результат

школа

S = 'шпала'

m = S.replace('па', 'ко')

print(m)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

15 of 26

Багаторядкове текстове поле

Багаторядкове текстове поле є об’єктом класу Text. За замовчуванням створюється віджет висотою (height) 24 знакомісця і шириною (width) 80 знакомісць. Значення цих властивостей можна задати при створенні об’єкта.

Значення WORD властивості wrap вмикає перенесення слів у полі на новий рядок цілком, а не по буквах.

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

16 of 26

Багаторядкове текстове поле

Створимо об’єкт text1 класу Text.

text1 = Text(width = 35, height = 6, wrap = WORD)

text1.pack()

Якщо в текстове поле введено більше рядків тексту, ніж висота поля, то під час перегляду текст можна прокручувати вгору й униз за допомогою колеса миші й клавіш керування курсором.

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

17 of 26

Методи Text

Основні методи в Text такі самі, як у Entry:

get()

insert()

delete()

Проте, викликаючи методи для багаторядкового поля, для символів слід зазначати два індекси, відокремлені крапкою, — номер рядка й номер символу в ньому.

Нумерація рядків починається з одиниці, а стовпців — з нуля.

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

18 of 26

Методи Text

Виведемо в поле об’єкта text1 вірш.

Щоб вірш виводився по рядках, початок кожного рядка слід позначити символом перенесення рядка \n:

s = "Встала весна, чорну землю\n

Сонну розбудила,\n

Уквітчала її рястом,\n

Барвінком укрила.\n

Т. Г. Шевченко"

text1.insert(1.0,s)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

19 of 26

Методи Text

Отримаємо з поля віджета text1 символи 1 рядка з індексами від 0 до 12.

Програмний код

Результат

Встала весна

subs = text1.get(1.0, 1.12)

print(subs)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

20 of 26

Методи Text

Щоб отримати один рядок із поля Text, потрібно вказати допустимий індекс для початку рядка, а потім зазначити той ший індекс із додаванням "lineend":

Програмний код

Результат

Встала весна, чорну землю

subs = text1.get(1.0, "1.0 lineend")

print(subs)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

21 of 26

Методи Text

Щоб отримати з поля Text його вміст, починаючи з певної позиції і до кінця, як другий параметр потрібно вказати END:

Програмний код

Результат

Встала весна, чорну землю

Сонну розбудила,

Уквітчала її рястом,

Барвінком укрила.

Т. Г. Шевченко

s = text1.get(1.0, END)

print(s)

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

22 of 26

Питання для самоперевірки

  1. Визначте, якого значення набуває змінна а після виконання команд, якщо s = 'Сонечко':
  1. Поясніть, як створюється текстове поле.

а) a = s[2:5];

б) a = s[:3];

в) a = s[5:];

г) a = s[::2];

ґ) a = 5*s[2];

д) а = s[: :–1].

  1. Запишіть команду, що реалізує таку дію:

а) отримати підрядок рядка s з 2-го символу по 5-й включно;

б) отримати підрядок з останніх п’яти символів рядка s.

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

23 of 26

Розгадайте ребус

Рядок

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

24 of 26

Домашнє завдання

Проаналізувати

с. 199-204

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

25 of 26

Працюємо за комп’ютером

Сторінка

203-204

Розділ 5

§ 31

© Вивчаємо інформатику teach-inf.com.ua

26 of 26

Успіхів�у навчанні!

Нова українська школа

Урок 42

Інформатика 8

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.