uabooks.top » Інформатика » Опрацювання рядкових вєличин
Інформація про новину
  • Переглядів: 14
  • Дата: 8-05-2020, 19:35
8-05-2020, 19:35

Опрацювання рядкових вєличин

Категорія: Інформатика




Ви вже знайомі з прийомами опрацювання текстів у текстовому редакторі, наприклад із пошуком і заміною символів . Мова Python має засоби для того, щоб запрограмувати подібні дії з рядковими величинами . Зважаючи на те, що всі змінні в Python є об’єктами, відповідні операції доступні у вигляді методів

Синтаксис виклику методу для рядкової змінної: ім'я змінної.назва методу (параметри)

Рядкові методи в Python не змінюють рядка, а утворюють новий

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

Рядкові методи

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

Пошук символів у рядку

Метод find() шукає задану групу символів у рядку s і повертає номер першого символу шуканого підрядка в рядку.

Якщо підрядок не знайдено, результат виклику методу дорівнює -1: nomer = s.find(subs),

де nomer — змінна цілого типу, яка отримує значення індексу першого символу підрядка subs у рядку s; subs — шуканий підрядок.

Знайдемо індекс першого символу підрядка 'га' у рядку s:

Заміна символів у рядку

Метод replace() шукає й замінює шуканий підрядок у заданому рядку:

де srez — змінна для рядка, що повертає метод; sfind — підрядок, який потрібно замінити у рядку s; sins — рядок, яким буде замінений підрядок sfind .

Якщо sins = '' (порожній рядок), то метод replace просто вилучить знайдені підрядки

Замінимо в рядку s усі підрядки 'cry' на підрядки 'smile' і результат запишемо в змінну si:

Визначення кількості входжень підрядна

За допомогою методу count() можна визначити кількість входжень заданої групи символів у рядок: kilk = s.count(subs),

де kilk — змінна цілого типу, яка отримує значення кількості входжень підрядка subs у рядок s; subs — шуканий підрядок.

Підрахуємо кількість повторень підрядка 'га' в заданому рядку s . Результат присвоїмо змінній k:

Перевірка складу рядка

Іноді буває потрібно перевірити, чи складається рядок тільки з літер або тільки з цифр. Для цього в Python є спеціальні методи, які повертають логічне значення (True або False). А саме:

• s.isdigit() — повертає True, якщо рядок s містить тільки цифри;

• s.isalpha() — повертає True, якщо рядок s містить тільки літери .

Напишемо код, який пропонує користувачеві створити пароль, що складається тільки з літер:

Функції користувача

Методи можна порівняти з цеглинками, з яких ви складаєте свою програму. Що робити, якщо немає методу, який виконує потрібну в алгоритмі розв’язування задачі дію? Ми можемо самі створити таку «цеглинку» — описати функцію користувача.

З правилами опису й виклику функцій користувача ви ознайомились у 6 класі .

Опис функції:

def ім'я_функції(<перелік формальних параметрів>): тіло функції

Тіло функції являє собою послідовність операторів, які будуть виконані після викликання функції. Після того як функцію створено, її можна викликати з іншої функції або безпосередньо з програми .

Щоб викликати функцію, потрібно:

1) ввести ім’я функції й додати дужки;

2) у дужках перелічити аргументи функції — значення, які під час виклику будуть присвоєні формальним параметрам

Якщо формальних параметрів немає, то після імені функції потрібно залишити порожні дужки

Опишемо функцію ins для вставляння підрядка subs у заданий рядок s після n-го символу:

Запишемо рядок s у зворотному порядку, вилучивши пропуски: def rev(s):

Зашифруємо речення шляхом вставлення заданого рядка після кожної літери:

Задано текстовий рядок . Вилучимо з нього всі цифри .

Опрацювання рядкових величин лежить в основі програм, які призначено для шифрування та дешифрування текстів, автоматичного перекладу тощо.

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

1. За допомогою яких засобів можна отримати підрядок заданого рядка? Поясніть на прикладі .

2. Як можна вилучити підрядок із заданого рядка?

3. Як запрограмувати вставляння підрядка в заданий рядок?

4. Обчисліть значення функції:

5. Яких значень набудуть змінні внаслідок послідовного виконання операторів, якщо початкові значення а = 'ми b = 'вивчаємо ';

6. Непорожній рядок, який однаково читається як зліва направо, так і справа наліво, називається паліндромом (наприклад, «козак з казок») . Напишіть програму для визначення, чи є уведений рядок паліндромом .

Вправа 5

У ХІХ ст. для пересилання важливих повідомлень використовувались шифри, в яких літери переставляються за певним правилом . Напишіть програму, що шифрує повідомлення, міняючи місцями кожні два знаки .

1) Запрограмуйте введення значення змінної s.

2) Створіть змінну si для формування результату і запишіть у неї порожній рядок

3) Число символів у рядку s має бути парним, тому запишіть оператор розгалуження для реалізації такої дії: якщо довжина рядка s є непарним числом, то додати до рядка пропуск:

4) Запишіть оператор циклу для перебору непарних індексів . В тілі циклу до рядка s1 додаються символи

5) Виведіть зашифроване повідомлення .

6) Збережіть програмний код у файлі з іменем Vprava5 . Випробуйте програму.

Переконайтесь, що повідомлення успішно розшифровується за допомогою цієї ж програми

Комп’ютерне тестування

Виконайте тестове завдання 5 із автоматичною перевіркою результату

Практична робота і

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

Завдання: скласти програму для розв’язування задачі .

Задача. Дано номер мобільного телефону й прізвище власника (власниці) . Зашифрувати прізвище власника, замінивши символи їх кодами . Визначити PIN-код власника, що дорівнює сумі цифр у номері телефону. Вивести в зашифрованому вигляді прізвище власника та PIN-код (див . рисунок) .

Обладнання: комп’ютер зі встановленим середовищем програмування Python .

Хід роботи

Під час роботи з комп’ютером дотримуйтеся правил безпеки.

У Python IDLE виберіть команду File ^ New File.

1. Запишіть команду завантаження модуля tkinter.

2. Створіть вікно програми розмірами 500 х 200 із заголовком Шифрування .

3. Створіть віджети labl—lab4 класу Label . Задайте для них значення властивості text відповідно до рисунка

4. Створіть віджети entry!, entry2 класу Entry для введення прізвища та номера мобільного телефону:

5. Створіть віджети entry3, entry4 класу Entry для виведення зашифрованого прізвища власника та його PIN-коду.

6. Додайте до вікна віджет Ь1 класу Button:

7. Запишіть заголовок функції — обробника події для кнопки Ь1: def b1_click():

8. У тілі функції — обробника події для кнопки візьміть значення з текстового поля entry1:

s = entry1.get()

Створіть змінну shifr і запишіть у неї порожній рядок . У циклі fo визначте код кожного символу рядка s, перетворіть числове зна чення коду на тип str і додайте до рядка shifr:

9. Значення рядка shifr виведіть до текстового поля entry3: entry3.delete(0, END)

entry3.insert(0, shifr)

10. У тілі функції прочитайте значення з текстового поля entry2: number = entry2.get()

Для обчислення суми цифр у рядку number кожний символ рядка number[i] перетворіть на тип int і додайте до значення суми pin:

Виведіть отримане значення суми pin до текстового поля entry4.

11. Останнім рядком програмного коду запишіть оператор запуску головного циклу обробки подій

12. Збережіть програмний код з іменем Практична1.

Випробуйте програму

Зробіть висновок про результати роботи.

 

 

Це матеріал з підручника Інформатика за 7 клас Бондаренко

 




^