Стандартні підпрограми для опрацювання символьних і рядкових величин.
До символів належать всі символи клавіатури, тобто цифри, букви, знаки. Із символів складаються рядкові величини. Тип рядкових величин - 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)
Результат:
Завдання 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
Коментарі
Дописати коментар