вівторок, 5 листопада 2019 р.

Домашнє завдання 8 клас


Pядки
Вважають, що програмісти добре знаються в математиці, тому що працюють з числами. Насправді, більшість програмістів працюють з текстовими рядками набагато частіше, ніж з числами.
Завдяки підтримці стандарту Unicode Python 3 може містити символи будь-якої мови світу, а також багато інших символів. Необхідність роботи із стандартом Unicode була однією з причин зміни Python 2.

 Створення рядків і функція print
Python гілки 2* дозволяє брати або не брати аргументи функціїї print в дужки. Для гілки 3.* дужки обов'язкові.
Будь-яка послідовність символів, укладена в лапки, в Python вважається рядком, при цьому рядки можуть бути укладені як в одинарні, так і в подвійні лапки:
>>> 'This is a string.' 'This is a string.'
>>> "This is also a string." 'This is also a string.'
Навіщо мати два види лапок? Основна ідея полягає в тому, що ви можете створювати рядки, що містять лапки або апостроф. Тобто, усередині одинарних лапок можна розташувати подвійні і навпаки:
Можна також використовувати три одинарні (''') або три подвійні лапки ("""):
>>> '''Yes''' 'Yes'
 >>> """No""" 'No'
 Щоб змінити розділювач (за замовчуванянм, це пропуск) між елементами, які виводить функція print(), треба використати її необов’язковий параметр sep і вказати розділювач:
>>> print 'Python', 'is', 'my', 'favorite', 'language!',sep=', 'Python,is,my,favorite,language! 
 Поглянемо на використання необов’язкового параметра end функції print.
Для прикладу, запустимо наступну програму, яка збережена у окремому
файлі з певним ім’ям:
print 'Hello' print('World')
Результат виведення буде таким:
Hello World
Рядки відображаються на екрані на окремих рядках виведення, оскільки функція print() автоматично додає символи нового рядка \n в кінець рядка, який їй передається. За необхідністю, замість символа нового рядка \n можна використовувати інший рядок, вказаний з допомогою параметра end.
Наприклад для програми:
print'Hello', end='' print'World'
виведення буде таким:
HelloWorld
В даному випадку текст виводиться в один рядок, тому що відсутній символ нового рядка \n після рядка 'Hello'. Замість символа нового рядка \n виводиться порожній рядок ''. Цей прийом буде в нагоді в тих випадках, коли необхідно відмінити використання символа нового рядка \n, який автоматично додається в кінці кожного виведення за допомогою функції print. 
Згаданий вище, порожній рядок можна утворити за допомогою різних лапок:
>>> '' ''
>>> "" ''
>>> """""" ''
>>> '''''' ''
Необхідність створення порожніх рядків виникає, наприклад, при утворенні рядків з інших рядків:
>>> score = 55 >>> base = ''
 >>> base += 'checking account: '
>>> base += str(score)
>>> base 'checking account: 55'
 Розділення рядка: функція split()


Функція split() розбиває рядок на окремі рядки і розміщує їх у списку.
Використовуючи цю функції, необхідно вказати символ-розділювач (у нашому прикладі ,):
>>> dolist = 'pass algorithm, write a program, test program'
>>> dolist.split(',') ['pass algorithm', ' write a program', ' test program']
Якщо ви не вкажете символ-розділювач, функція split() буде використовувати будь-яку послідовність пропусків, а також символи нового рядка і табуляцію:
>>> dolist.split() ['pass', 'algorithm,', 'write', 'a', 'program,', 'test', 'program']

Для виклику функції split(), навіть без аргументів, все одно потрібно додавати круглі дужки - саме так Python дізнається, що викликається функція.
 Об’єднання рядків: функція join()
Функція join() є протилежністю функції split().

Функція join() об’єднує список рядків в один рядок.
Виклик функції виглядає трохи заплутано, оскільки спочатку ви вказуєте рядок, який об’єднує інші, а потім - список рядків для об’єднання: рядок.join(список рядків). В наступному прикладі об’єднаємо кілька імен в список, розділений комами і пропусками:
>>> crypto_list = ['Jumanji: Welcome to the Jungle', 'The Lost City of Z', 'Justice League']
>>> crypto_string = ', '.join(crypto_list)
>>> print 'Browse films:', crypto_string
Browse films: Jumanji: Welcome to the Jungle, The Lost City of Z, Justice League
Регістр і вирівнювання
Розглянемо ще кілька прикладів використання вбудованих у Python функцій для роботи з рядками. Створимо рядкову змінну з таким вмістом:
>>> setup = 'beetles buzzing over cherries...'
Видалимо символи . з обох кінців рядка за допомогою функції strip():
Функції rstrip() і lstrip() видаляють пропуски, а також символи нового рядка і табуляцію відповідно в кінці і на початку рядка.
>>> setup.strip('.') 'beetles buzzing over cherries' >>> setup 'beetles buzzing over cherries...'

Оскільки рядки незмінні, рядок setup не змінюється. Відбувається все так: отримують значення змінної setup, виконують над цим значенням деякі дії, а потім повертають результат як новий рядок.
Напишемо всі слова з великої літери за допомогою функції title():
>>> setup.title() 'Beetles Buzzing Over Cherries...'
Напишемо перше слово з великої літери, а всі інші символи - малими літерами за допомогою функції capitalize():
>>> setup.capitalize() 'Beetles buzzing over cherries...'
Напишемо всі слова великими літерами за допомогою функції upper():
>>> setup.upper() 'BEETLES BUZZING OVER CHERRIES...'
Напишемо всі слова малими літерами за допомогою функції lower():
>>> setup.lower() 'beetles buzzing over cherries...'
Змінимо регістр літер за допомогою функції swapcase():
>>> setup = 'Beetles buzzing over Cherries...' >>> setup.swapcase() 'bEETLES BUZZING OVER cHERRIES...'
Для вирівнювання рядків використовуються кількість місць для рядка і наступні функції: center(), ljust(), rjust().
Вирівнювання рядка по центру на проміжку із 40 місць:
>>> setup.center(40) ' beetles buzzing over cherries... '
Вирівнювання рядка за лівим краєм на проміжку із 40 місць:
>>> setup.ljust(40) 'beetles buzzing over cherries... '
Вирівнювання рядка за правим краєм на проміжку із 40 місць:
>>> setup.rjust(40) ' beetles buzzing over cherries...'
Заміна символів: функція replace()
Ви можете використовувати функцію replace() для того, щоб замінити один підрядок на інший.
Для цього треба передати у цю функцію «старий підрядок» (який треба замінити), «новий підрядок» (яким треба замінити) і кількість входжень старого підрядка: рядок.replace(старий рядок, новий підрядок, кількість замін).
Якщо не записувати останній аргумент (кількість замін), буде проведена заміна усіх входжень. Наприклад:
>>> language = 'I told my friend, "Python is my favorite language! I love to program in Python!"'
>>> language.replace('Python', 'Ruby') 'I told my friend, "Ruby is my favorite language! I love to program in Ruby!"'
Введення даних з клавіатури
Для виконання ряду програм, зазвичай, потрібна деяка інформація, яку повинен ввести користувач. Простий приклад: припустимо, користувач хоче дізнатися, чи достатній його вік для голосування. Програма повинна отримати від користувача значення - його вік; коли у програми з’являться дані, вона може порівняти їх з віком, що дає право на голосування, і повідомити результат.
Давайте дізнаємось, як отримати від користувача вхідні дані, щоб програма могла працювати з ними.
Функція input()
Для отримання вхідних даних у програмах використовується функція input().
Функція input() призупиняє виконання програми і чекає, поки користувач введе деякий текст і натисне Enter. Отримавши введення, Python зберігає його у змінній, щоб було зручніше працювати з ним.
Кожен раз, коли у вашій програмі використовується функція input(), ви повинні включати зрозумілу підказку-текст (наприклад, «Please enter your name: »), яка точно повідомить користувачеві, яку інформацію від нього хочуть отримати. Наприклад, для даного фрагменту коду додайте пробіл в кінці підказки (після двокрапки), щоб відокремити підказку від даних, що вводяться користувачем, і чітко показати, де повинен вводитися текст:
>>> name = input("Please enter your name: ") Please enter your name: Alex
>>> print("Hello, " + name + "!") Hello, Alex!
При використанні функції input() Python інтерпретує всі дані, введенні користувачем, як рядок. У наступному сеансі інтерпретатора програма запитує у користувача вік:
>>> age = input("How old are you? ") How old are you? 25
>>> age '25'
Користувач вводить число 25, але, коли ми запитуємо у Python значення age, виводиться '25' - введене число в рядковому форматі. Лапки, в яких знаходяться дані, вказують на те, що Python інтерпретує введення як рядок.
Спроба використовувати введені дані як число викликає помилку:
Коли ви намагаєтеся порівняти введені дані з числом, Python видає помилку, тому що не може порівняти рядок з числом: рядок '25', що зберігається в age, порівнюється з числовим значенням 18; відбувається помилка. Проблему можна вирішити за допомогою функції int(), яка інтерпретує рядок як числове значення


Практична робота 8 клас


Завдання 5 Задачі з рядками

Напишіть програми у середовищі програмування для розв’язування таких завдань:
1.     Збережіть будь-яке повідомлення у змінній і виведіть це повідомлення. Потім замініть значення змінної іншим повідомленням і виведіть нове повідомлення. Програму збережіть у файлі, ім’я якої підпорядковується стандартним правилам Python по використанню малих літер і символів підкреслення - наприклад, simple_messages.py.
2.     Збережіть ім’я користувача у змінній і виведіть повідомлення, призначене для конкретної людини. Повідомлення повинно бути, наприклад, таким: "Hello, Sasha, would you like to learn some Python today?"
3.     Знайдіть відому цитату, яка вам подобається. Збережіть ім’я автора вислову у змінній famous_person. Cкладіть повідомлення і збережіть його у новій змінній з ім’ям message. Виведіть своє повідомлення. Результат повинен виглядати приблизно так (включаючи лапки): Albert Einstein once said, "A person who never made a mistake never tried anything new.".
4.     Збережіть ім’я користувача у змінній і додайте на початку і у кінці імені кілька пропусків. Простежте за тим, щоб кожна керуюча послідовність (\t і \n) зустрічалася принаймні один раз. Виведіть ім’я, щоб було видно пропуски на початку і у кінці рядка. Потім виведіть його знову з використанням кожної з функцій видалення пропусків: lstrip()rstrip() і strip().
5.     Використайте функцію print() для виведення повної домашньої адреси. У першому рядку виведіть власне ім’я та прізвище. У кожному наступному рядку виведіть окремі елементи адреси (країна, індекс, назва населеного пункту, вулиця, номер будинку тощо).
6.     Виконайте переведення одиниць вимірювання відстаней. Значення відстані вказано у метрах. У кожному новому рядку програма виводить значення відстані, представлене у: дюймах, футах, милях, ярдах тощо. Числові дані на екрані мають бути у відформатованому вигляді: два знаки після десяткової точки. Використайте функцію format(). Потрібні значення одиниць вимірювання знайдіть у мережі Інтернет.
7.     Обчисліть тривалість якоїсь події. Припустимо, учнівські канікули тривали кілька днів. На екран треба вивести у відформатованому вигляді (вирівнювання за лівим краєм, ширина поля: 10 знаків) загальну тривалість цієї події у годинах, хвилинах, секундах.
8.     Виконайте перетворення значення температури у градусах Цельсія (C) для інших температурних шкал: Фаренгейта (F) і Кельвіна (K). Програма повинна відображати еквівалентну температуру у градусах Фаренгейта (F = 32 + 9/5 * C). Програма повинна відображати еквівалентну температуру у градусах Кельвіна (K = C + 273,15). Результати потрібно вивести на екран у відформатованому вигляді: з використанням двох знаків після десяткової точки, мінімальною довжиною поля (15), вирівнюванням по центру. Зверніть увагу, у числах для розділення дробової і цілої частин використовують точку.
9.     Виконайте розкладання чотирицифрового цілого числа і виведіть на екран суму цифр у числі. Наприклад, якщо обрали число 6259, то програма повинна вивести на екран повідомлення: 6 + 2 + 5 + 9 = 22. Використайте функцію format() для відображення результату.
10. За координатами широти і довготи двох точок на Землі у градусах визначте відстань між ними у кілометрах. Нехай (x1y1) і (x2y2) є кординатами широти і довготи (у градусах) двох точок на земній поверхні. Відстань між цими точками у кілометрах обчислюється так: відстань = 6371.032 × агссоs(sin(x1) × sin(x2) + cos(x1) × соs(x2) × cos(y1 - y2)). Значення 6371,032 - це середній радіус Землі у кілометрах. Тригонометричні функції Python працюють з радіанами. Як результат, необхідно перетворити значення координат із градусів у радіани перед обчисленням відстані за формулою. Модуль math містить функцію з ім’ям radians, яка переводить градуси у радіани. Переведення можна зробити і за формулою, на зразок x1 = x1 × pi/180, де pi- число Пі. Знайдіть відстань між двома містами Пекін (39.9075000, 116.3972300) і Київ (50.4546600, 30.5238000) і виведіть значення на екран. Значення відстані повинне відображатися у відформатованому вигляді: з використанням трьох знаків після десяткової точки, мінімальною довжиною поля (10), вирівнюванням за правим краєм. На даному сайті знайдіть значення координат у десяткових градусах ще для кількох пар міст на вибір і визначте відстань у кілометрах між ними. Перевірте правильність визначення відстаней між містами, використовуючи один із сервісів вищезгаданого сайту.
11. Змініть код програм із пунктів 6-9 таким чином, щоб дані у програми могли вводитись користувачем із клавіатури. Для модифікації коду використовуйте функцію input().
Виберіть дві програми з написаних вами і додайте у кожну хоча б один коментар. Якщо ви не знаєте, що написати у коментарях, додайте своє ім’я і поточну дату на початку коду. Потім додайте один коментар з описом того, що робить програма.