Символьні та рядкові величини

 Стандартні підпрограми для опрацювання символьних і рядкових величин.

До символів належать всі символи клавіатури, тобто цифри, букви, знаки. Із символів складаються рядкові величини. Тип рядкових величин - str. Рядкові величини записують у подвійних лапках, або одинарних.

Наприклад:

Рядок: 'Viktoriya', "Перемога", 'miss', символи: 'm', 'н'.

Рядок можна розглядати як масив символів.

Форматування рядків:

Переведення на нову стрічку: \n

Для виведення спеціального символу, перед ним ставиться: \

Виведення на екран рядків та символів: print('мова')

Результат: мова

Слова при виведенні ми бачимо без лапок. Можна виводити декілька рядків: print('Сама ', 'мелодійна ', 'мова ', '- українська')

Пробіл також виводиться на екран, якщо ми його вказуємо.

Якщо ми хочемо, щоб між словами був розділювач, наприклад кома, то застосовуємо sep = ','

print('ромашки',sep = ',', 'троянди',sep = ',', 'лаванда')

Результат: ромашки, троянди, лаванда

Якщо слово з апострофом, то записуємо його так: 'м"яч', або так: "в'їзд". Або можна використати скісну лінію:

print('сім\'я')

Результат: сім'я

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

Створити новий рядок: rad = ' '.

Для об'єднання рядків використовується знак '+'.

Для звернення до символу рядка використовуємо квадратні дужки та індекс символу (починаємо відлік символів з нуля).

Наприклад: a = 'viki', a[0] = 'v', a[1] = 'i', a[2] = 'k', a[3] = 'i'

Виділення частини рядка: ім'я рядка[початок: кінець: крок].

Крок можемо не вказувати, якщо він дорівнює одиниці.

Наприклад:

b = 'monobank'

print('b[0:4] =', b[0:4])

Результат: b[0:4] = mono

Функції і методи опрацювання рядкових величин

1. len('рядок') - довжина рядка (кількість символів).

Приклад:

b = 'monobank'

print(len(b))

Результат: 8

2. str(об'єкт) - перетворення об'єкта на рядковий тип.

a = str(5+25)

print(a)

Результат: 30

А такий приклад дасть помилку, бо не можна об'єднати рядок і цифру:

a = str(5+25) print(a) b=5 print(a+b)

Результат:

print(a+b) TypeError: can only concatenate str (not "int") to str

3. Метод find() - повертає індекс першого входження підрядка в рядок. Загальна структура звернення до методу: <рядок>.find(підрядок, початок, кінець)

Приклад:

b = 'monobank' c = b.find('no') print(c)

Результат: 2

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

b = 'monobank' c = b.find('хo') print(c)

Результат: -1

Якщо початок та кінець не вказано, то пошук проводиться від початку рядка до кінця.

4. Метод rfind () — повертає індекс останнього входження підрядка в рядок. Загальна структура звернення до методу: <рядок>.rfind (підрядок, початок, кінець)

b = 'monobankno' c = b.rfind('no') print(c)

Результат: 8

b = 'monobankno' c = b.rfind('no',0,5 ) print(c)

Результат: 2

5. Метод count () повертає кількість входжень підрядка в рядок. Загальна структура методу: <рядок>.count ('підрядок', початок,кінець)

b = 'monobankno' c = b.count('no',0,5 ) print(c)

Результат: 1

b = 'monobankno' c = b.count('no' ) print(c)

Результат: 2

6. Метод replace() виконує заміну всіх входжень заданого підрядка в рядку на новий підрядок і повертає новий рядок. Структура методу: <рядок>.replace (<підрядок, який необхідно замінити>, <новий підрядок>)

Приклад:

b = 'monobank' c = b.replace('mono' , 'privat') print(c)

Результат: privatbank

7. Метод index() виконує ту саму функцію, що й метод find(), а метод rindex() — ту саму функцію, що й метод rfind (), але у разі відсутності підрядку в рядку обидва методи повертають не –1, а дають помилку ValueError.

Приклад:

b = 'monobank' c = b.index('ba') print(c)

Результат: 4

b = 'monobank' c = b.index('na') print(c)

Результат:

c = b.index('na') ValueError: substring not found

8. Метод join() — збирає всі рядки зі списку рядків в один рядок, між якими вставляє відокремлювач:

<відокремлювач>.join ([перелік рядків])

a = 'Україна' b = 'понад' c = 'усе' m = ' '.join([a,b,c]) print(m)

Результат: Україна понад усе

9. Метод upper() замінює в рядку всі малі букви великими. Приклад:

a = 'перемога'.upper() print(a)

Результат: ПЕРЕМОГА
10. Метод lower() замінює в рядку всі великі букви малими. Приклад:
a = 'LOGO'.lower() print(a)
Результат: logo
11. Метод capitalize() замінює першу букву рядка великою. Приклад:
a = 'молодий'.capitalize() print(a)
Результат: Молодий
12. Метод title () — першу букву кожного слова в рядку робить великою, а всі інші — малими.
Приклад:
a = 'мала академія наук'.capitalize() print(a)
Результат: Мала академія наук
13. Метод swapcase() — перетворює кожний великий символ у рядку на малий, а кожний малий — на великий.
Приклад:
a = 'мАЛА аКАДЕМІЯ нАУК'.swapcase()
print(a)
Результат: Мала Академія Наук
14. Метод center (ширина, заповнювач) — виводить рядок по центру. Заповнювач — це символ, який доповнює рядок на його початку і у кінці. За замовчуванням пробіл. Приклад:
b = 'Ви знаєте, як липа шелестить?'.center (50, '!')
print(b)
Результат:
!!!!!!!!!!Ви знаєте, як липа шелестить?!!!!!!!!!!!
15. Метод split(символ розділювач) — розділяє рядок на окремі рядки, використовуючи розділювач, і перетворює рядок у список. За замовчуванням розділювач пробіл.
Приклад:
a = 'садок вишневий біля хати'.split(' ') print(a)
Результат: ['садок', 'вишневий', 'біля', 'хати']
16. Метод format () - виконує форматування рядка. Форматування - зміна зовнішнього вигляду рядка (вирівнювати по центру, по правому або по лівому краю, вказати ширину рядка).
Приклад:
a = 5
b = 2
s= '{0}**{1} = {2}'.format(a, b, a**b) print(s)
Результат: 5**2 = 25
Фігурними дужками позначають ті місця, де потрібно зробити вставку. Цифра - номер елемента (номери починаються з 0).
(** - піднесення до степеня)
17. ord('символ') - представлення символу у шістнадцятковій системі числення. chr(шістнадцятковий код), за допомогою якої отримується символ за значенням його коду.
Приклад:
a = ord('i')
print(a)
Результат: 105
a = chr(105)
print(a)
Результат: i
Завдання


Завдання з підручника Руденко Інформатика 9 клас 2022, с. 143 для поглибленого вивчення.
Завдання 1. В інтерактивному режимі визначте довжину кожного рядка: "В Україні розроблено найбільший" і "літак у світі МРІЯ". Об’єднайте рядки і визначте його загальну довжину.
Розв'язання:
>>> a = "В Україні розроблено найбільший"
>>> len(a)
31
>>> b = "літак у світі МРІЯ"
>>> len(b)
18
>>> len(a+b)
49
У звичайному режимі:
a = "В Україні розроблено найбільший"
print(len(a))
b = "літак у світі МРІЯ"
print(len(b))
print(len(a+b))
Результат:
31
18
49
Завдання 2. В інтерактивному режимі об’єднайте три рядки "У 1850 році в Бердичеві", "місцева красуня Евеліна Ганська" і "була повінчана з Оноре де Бальзаком" в одне речення.
Розв'язання:
>>>a = "У 1850 році в Бердичеві "
>>>b = "місцева красуня Евеліна Ганська "
>>>c = "була повінчана з Оноре де Бальзаком"
>>>a+b+c
'У 1850 році в Бердичеві місцева красуня Евеліна Ганська була повінчана з Оноре де Бальзаком'

У звичайному режимі:
a = "У 1850 році в Бердичеві "
b = "місцева красуня Евеліна Ганська "
c = "була повінчана з Оноре де Бальзаком"
print(a+b+c)
Результат:
У 1850 році в Бердичеві місцева красуня Евеліна Ганська була повінчана з Оноре де Бальзаком

Завдання 3. Розробіть код визначення у рядку "В Україні найбільші у світі запаси марганцевої руди" кількості букв р і код букви на 10-позиції.

# Завдання 3
a = "В Україні найбільші у світі запаси марганцевої руди"
c = a.count('р')
print('Кількість букв ', c)
n = ord(a[9]) print(n)

Результат:
Кількість букв  3
32

Завдання 4. Розробіть код заміни першої букви великою і слова найдовша словом найглибша у рядку "станція метро Арсенальна у Києві найдовша у світі".

# Завдання 4
a = "станція метро Арсенальна у Києві найдовша у світі" c = a.replace('станція', 'Станція') print(c) m = c.replace('найдовша', 'найглибша') print(m)

Результат:
Станція метро Арсенальна у Києві найдовша у світі Станція метро Арсенальна у Києві найглибша у світі

Завдання 5. Розробіть код визначення позиції, з якої починається слово знаходиться, заміни слова дві словом три і визначення кількості букв у рядку "З шести православних лавр у світі дві знаходяться в Україні".

# Завдання 5
a = "З шести православних лавр у світі дві знаходяться в Україні" c = a.find('знаходяться') print(c) m = a.replace('дві', 'три') print(m) print(len(m))

Результат:
38 З шести православних лавр у світі три знаходяться в Україні 59

Завдання 6. Дано два рядки "географічний центр Європи розташований" і "в Україні біля містечка Рахів". Розробіть код, за допомогою якого замінюється перша буква першого рядку великою, слово розташований замінюється словом знаходиться, об’єднуються рядки в один і визначається його довжина.

# Завдання 6
a = "географічний центр Європи розташований " b = "в Україні біля містечка Рахів" c = a.replace('географічний', 'Географічний') d = c.replace('розташований', 'знаходиться') m = d+b print(m) print(len(m))

Результат:
Географічний центр Європи знаходиться в Україні біля містечка Рахів 67

Завдання з підручника Руденко, Інформатика 9 клас 2022, для поглибленого вивчення, с. 146.
Завдання 1. Дано текстовий рядок «Зло нічого не дає, крім зла» (М. Луків). Розробіть алгоритм і програму визначення коду букви на шостій позиції, кількості цієї букви і виділення підрядка з 0 до 16 позиції включно.

# Завдання 1
a = 'Зло нічого не дає, крім зла' c = a[6] print(c) print(ord(c)) b = a.count(a[6]) print(b) m = a[0:17] print(m)

Результат:
ч 1095 1 Зло нічого не дає

Завдання 2. Дано текстовий рядок «Діла добрих оновлюються – діла злих гинуть» (Тарас Шевченко). Розробіть алгоритм і код виведення на екран цього тексту в два рядки і визначення наявності двох різних букв, які вводяться з клавіатури.

# Завдання 2
a = 'Діла добрих оновлюються – діла злих гинуть' print('Діла добрих оновлюються - \n діла злих гинуть') buk = input('Введіть букву: ') if buk in a: print('Така буква є') else: print('Такої букви немає') buk1 = input('Введіть іншу букву: ') if buk1 == buk: print('Таку букву перевірили, ви неправильно зробили введення') else: if buk1 in a: print('Така буква є') else: print('Такої букви немає')

Результат:
Діла добрих оновлюються - діла злих гинуть Введіть букву: о Така буква є Введіть іншу букву: ж Такої букви немає

Завдання 3. Дано два підрядки: "Мужність не дається" і "напрокат". Розробіть алгоритм і код визначення довжини кожного підрядка, об’єднання їх в єдиний рядок «Мужність не дається напрокат» (Ліна Костенко) і визначення позиції, з якої починається слово 'дається'

# Завдання 3
a = "Мужність не дається" b = "напрокат" print(len(a)) print(len(b)) c = a + ' ' + b print(c) d = c.find('дається') print(d)

Результат:
19 8 Мужність не дається напрокат 12

Завдання 4. За одним із міжнародних досліджень, проведеним у 2020 році, сучасні мови програмування мають такі рейтинги: JavaSript - 18,4 %, Java - 15,4 %, C# - 13,7 %, Python - 13,2 %, PHP - 10,8 %, C++ - 5,8 %, TypeScript - 4,4 %. Розробіть алгоритм і код створення списку рядків цих мов, визначення місця, яке в ньому займає мова Python, і перетворення списку рядків у єдиний рядок.

# Завдання 4
a = 'JavaSript'
b = 'Java'
c = 'Python'
d = 'PHP'
f = 'C++'
g = 'TypeScript'
m = ' '.join([a, b, c, d, f, g])
print(m)
h = m.find('Python')
print(h)

Результат:
JavaSript Java Python PHP C++ TypeScript 15

Упорядкування значень елементів
У мові Python рядок є незмінним типом даних. Тому впорядковувати безпосередньо самі рядки з переміщенням їхніх значень неможливо. У мові Python для впорядкування елементів рядкової величини можна застосовувати функцію sorted (), яка повертає список упорядкованих елементів, кожний з яких береться у лапки. Метод sort() для рядкових величин застосовувати не можна.
Приклад:
a = 'книга'
m = sorted(a)
print(m)

Результат:
['а', 'г', 'и', 'к', 'н']

Функція sorted () перетворює цифровий рядок у список, у якому кожна цифра подається рядком, а потім здійснюється їх упорядкування.

Текстовий рядок можна перетворити в список рядків:за допомогою split(), а також перетворити у рядок за допомогою join():

text = 'якби ви знали паничі'
a = sorted(text.split())
print(a)
Результат: ['ви', 'знали', 'паничі', 'якби']

text = 'якби ви знали паничі'
a = sorted(text.split())
print(a)
n = ' '.join(a)
print(n)

Результат:
['ви', 'знали', 'паничі', 'якби'] ви знали паничі якби

    Упорядкувати елементи рядка можна також за допомогою функції sorted() і методу split() з використанням оператора циклу, але для цього потрібен новий рядок.
    Із початкового рядка створюються список рядків і новий порожній рядок. Далі до порожнього рядка за допомогою оператора циклу приєднуються упорядковані елементи списку рядків.

Приклад:
a = 'ой ти дівчино з горіха зерня' c = a.split() print(c) a1 = ' ' for i in sorted(c): a1 = a1 + ' ' + i print('Впорядкований рядок:') print(a1)

Результат:
['ой', 'ти', 'дівчино', 'з', 'горіха', 'зерня'] Впорядкований рядок: горіха дівчино з зерня ой ти

Упорядкування методом вибору
Упорядкування здійснюється переміщенням елементів.
Якщо є два елементи a і b, то для того щоб їх поміняти місцями використовують третю змінну:
x = a a = b b = x
Приклад:
a = 'Україно' b = 'моя' x = a a = b b = x print(a,b)

Результат: моя Україно

Це можна зробити простіше. У Python виконати обмін значеннями між змінними а і b можна за допомогою одного оператора присвоювання так: a, b = b, a. Це можна зробити і з трьома змінними.
Нехай дано рядок 'коли повертається світ спиною'. Впорядкувати його за алфавітом методом вибору.
Розв'язування:
a = 'коли повертається світ спиною'
s = a.split() n = len(s) p = n-1 while p>0: m = 0 for i in range(n): if s[i] > s[m]: m = i s[m],s[p] = s[p],s[m] p = p-1 print('Упорядкований рядок: ') for i in range(n): print(s[i], end = ' ')

Результат:
Упорядкований рядок: коли спиною повертається світ


Завдання з підручника Руденко Інформатика 9 клас для поглибленого вивчення, с. 154
Завдання 1. В інтерактивному режимі перетворіть рядок 'calculator' у рядок символів і упорядкуйте символи в алфавітному порядку.
>>>a = 'calculator'
>>>a = sorted(a)
>>>print(a)
['a', 'a', 'c', 'c', 'l', 'l', 'o', 'r', 't', 'u']

Завдання 2. Виконайте в інтерактивному режимі упорядкування рядка ключових слів мови Python 'return class def else for try'.
>>>a = 'return class def else for try'
>>>a = sorted(a.split())
>>>print(a)
['class', 'def', 'else', 'for', 'return', 'try']
>>>a = ' '.join(a)
>>>print(a)
class def else for return try

Завдання 3. Розробіть алгоритм і код визначення кількості букви 'з' у рядку прислів’я "Людина без Вітчизни, як соловей без пісні".
# Завдання 3
a = 'Людина без Вітчизни, як соловей без пісні'
b = a.count('з')
print(b)

Результат: 3

Завдання 4. Розробіть алгоритм і код визначення кількості підрядка 'ліше' у відомому прислів’ї "За морем тепліше, та вдома миліше".
# Завдання 4
a = 'За морем тепліше, та вдома миліше'
b = a.count('ліше')
print(b)

Результат: 2

Завдання 5. Розробіть блок-схему алгоритму і код визначення всіх позицій, на яких знаходиться буква 'а' в текстовому рядку «Жодна мета не настільки високою, щоб виправдати негідні засоби для її досягнення» (Альберт Ейнштейн).
# Завдання 5
a ='Жодна мета не настільки високою, щоб виправдати негідні засоби для її досягнення' n = len(a) for i in range(n): if a[i]=='а': print(i, end = ' ')
Результат: 4 9 15 41 44 57

Завдання 6. Розробіть код упорядкування в алфавітному порядку слів рядка 'Skype Edge Outlook Publisher Calendar' методом обміну.
# Завдання 6
s = 'Skype Edge Outlook Publisher Calendar' m = s.split() print(m) n = len(m) p = n - 1 while p > 0: a = 1 for i in range(p): if m[i] > m[a]: a = i m[a], m[p] = m[p], m[a] p = p -1 print('Упорядкований масив: ') for i in range(n): print(m[i], end = ' ')
Результат:
['Skype', 'Edge', 'Outlook', 'Publisher', 'Calendar'] Упорядкований масив: Calendar Edge Outlook Publisher Skype

 

Коментарі