Практичний посібник, міні-методичка по Python для 6 класу

Про матеріал
Короткий методичний посібник з основ програмування мовою Python для учнів 6 класу. Можна використовувати як опорний конспект для учнів під час занять з інформатики
Перегляд файлу

Основні поняття мови Python

Згадайте, з чого ви починали вивчення української та іноземної мови – з алфавіту. Потім ви вивчали правила запису слів – синтаксис мови, і значення нових слів – семантику мови. Основними складовими будь-якої мови програмування є алфавіт, синтаксис і семантика.

Отже, і вивчення мови Python ми теж розпочнемо з алфавіту.

Алфавіт мови Python

У мові Python при створенні програм можуть використовуватися такі символи:

  • літери латинського алфавіту A..Z, a..z; цифри 0..9;
  • знаки арифметичних операцій, спеціальні символи: + – * / \^ = < > ( ) . , : ; ‘ # _;
  • комбінації символів: <=, >=, <>, = =; !=,**;
  •    службові слова, що мають фіксований для Python зміст, наприклад: and, elif, if, print, as, else, import тощо.

Синтаксис мови – сукупність правил побудови команд мови програмування.

Семантика мови – сукупність правил виконання комп’ютером команд, записаних мовою програмування. З синтаксисом та семантикою команд Python ви будете ознайомлюватися по мірі вивчення мови програмування. Величини в мові Python

Окремий інформаційний об’єкт (число, символ, рядок та ін.) називають величиною. Основними характеристиками величин є назва, вид, тип і значення. Вид величини визначає спосіб використання величини в програмі. Величина може бути константою (тобто постійною) або змінною.

Константи — це величини, значення яких не можуть змінюватися в ході виконання програми. Прикладом константи може бути число (5, 1.23) або рядок: "Це рядок!".

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

Змінна – це просто іменована частина пам’яті твого комп’ютера, де ти тримаєш певну інформацію. На відміну від констант, потрібен якийсь спосіб для отримання доступу до змінних, і саме тому змінним дають імена (ідентифікатори).

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

1) Першим символом імені має бути літера чи знак нижнього підкреслювання '_'.

2) Решта імені може складатися з літер, чисел або знаків нижнього підкреслювання. Не можна використовувати спеціальні символи, такі, як /, # або @.

3) Не можна використовувати пробіли, замість пробілу можна застосувати нижнє підкреслення.

4) Імена змінних чутливі до регістру символів. Наприклад, myname і myName – це різні змінні.

5) Не можна називати змінні іменами команд, наприклад, print.

Коментарі в програмі

Коментар — це текст, призначений для читання людиною, а не комп’ютером.

Коментар – це підказка для нас, яку дію виконує програма. Вставляючи коментарі в текст програми, ми спрощуємо собі та іншим її читання і розуміння.

Щоб комп’ютер відрізнив команди від коментарів, у мові Python перед текстом коментаря ставиться знак ’#’. Редактор IDLE виділяє коментарі червоним кольором, нагадуючи про те, що Python проігнорує ці фрагменти коду. Коментар пояснює призначення наступної команди:

# Запит імені користувача s = input(‘Як тебе звати?‘)

Типи величин в мові Python

Змінні зручно представити у вигляді "поштових скриньок" (комірок пам'яті комп'ютера), на які навішені ярлики з їх іменами. Для різних величин створюються «скриньки» різного розміру, який залежить від типу величини. Тип величини визначається обсягом пам’яті, необхідним для її збереження, множиною припустимих значень величини, та операціями, які можна над нею виконувати. Основними типами величин є числа і рядки.

В Python є два типи числових даних:

  • цілі числа (int), тобто числа без дробової частини;
  • і дійсні (float) – дробові числа з десятковою крапкою.

Цілі числа потрібні для рахунку (перший, другий, третій…). Кількість учнів у класі, вік людини, кількість предметів ми зазвичай указуємо за допомогою цілих чисел. Числа з плаваючою крапкою, або десяткові дроби, потрібні, коли ми хочемо указати частину чого-небудь, наприклад, 3.5 м, 1.25 грн. Звісно, у програмі ми не будемо указувати одиниці вимірювання (метри, гривні), лише число з дробовою частиною. В якості роздільника між цілою і дробовою частиною числа використовуйте крапку.

Рядок – це взята в одинарні лапки послідовність будь-яких символів – цифр, літер, розділових знаків. У змінних рядкового типу ми зберігатимемо фрагменти тексту.

Оператори Python

Математичні символи, такі як + (плюс) і – (мінус), називаються операторами, так як вони оперують (або виконують обчислення) числами в рівнянні.

У мові Python використовується більшість операторів, якими ви користуєтеся на уроках математики, в тому числі +, -, дужки (). Однак деякі оператори відрізняються від використовуваних в школі: так, оператор множення представлений зірочкою (*), а оператор ділення – косою рискою /.


Синтаксичні помилки

Якщо Python не може зрозуміти введену вами команду, то він може вивести у відповідь повідомлення про помилку з текстом “SyntaxError”. Це означає, що виникла проблема з тим, яким чином ви попросили комп'ютер виконати якесь завдання, тобто з синтаксисом.

Місце помилки у вікні консолі помічається червоним кольором. Після команди, що містить помилку, виводиться повідомлення про помилку. Уважно читайте це повідомлення – це допоможе зрозуміти, в чому помилка, і виправити її.

Приклад 24.8. У виразі допущено помилку: надруковано зайву дужку.

 

Напишемо свою першу програму в середовищі розробки IDLE.

Запускаємо IDLE (спочатку запускається в інтерактивному режимі), після чого вже можна починати писати першу програму. Традиційно, першою програмою у нас буде "hello world".

Щоб написати "hello world" на python, досить усього одного рядка:

print("Hello world!")

Вводимо цей код в IDLE і натискаємо Enter.

Радійте! Ви написали свою першу програму на python!

З інтерактивним режимом ми трохи познайомилися, можете з ним ще погратися, наприклад, написати:

print(3 + 4)

print(3 * 5)

print(3 ** 2)

Але, все-таки, інтерактивний режим не буде основним, адже він виконується покроково у вікні інтерпретатора.

В основному, ви зберігатимете програмний код у файл і запускатимете вже файл.

Для того, щоб створити нове вікно, в інтерактивному режимі IDLE виберіть File/New File (чи натисніть Ctrl + N).

У вікні, що відкрилося, введіть наступний код:

name = input("Як Вас звати? ")

print("Привіт ", name)

Перший рядок друкує питання ("Як Вас звати? "), чекає, поки ви не надрукуєте що-небудь і не натиснете Enter і зберігає введене значення в змінній name.

У другому рядку ми використовуємо функцію print для виведення тексту на екран, в даному випадку для виводу "Привіт, " і того, що зберігається в змінній "name". (Зверніть увагу, текст пишеться в лапках, змінні – без лапок, для розділення кількох фрагментів усередині команди print використовують коми. І не забувайте про дужки!

Тепер натиснемо F5 (чи виберемо в меню IDLE Run/Run Module) і переконаємося, що те, що ми написали, працює. Перед запуском IDLE запропонує нам зберегти файл. Збережемо туди, куди вам буде зручно, після чого програма запуститься.

Вітаємо! Ви навчилися писати прості програми, а також познайомилися з середовищем розробки IDLE. Тепер можна трохи відпочити, а потім почати вивчати python далі. Можете подивитися синтаксис python, цикли або умови. Успіхів вам!

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

1. Назвіть основні характеристики величини.

2. Назвіть і охарактеризуйте види величин.

3. Які імена недопустимі в якості ідентифікаторів і чому?

а) suma;  б) w1;   в) primer 1;  г) (sum);  д) a–4;  е) if;  ж) 8a.

4. Дайте визначення типу величини.

5. Обчисліть значення виразів:

а) 7/2   б) 7 // 2   в) 7 % 2

г) 123 //100  д) 123 % 10   є) (123 // 10)% 10


Лінійні алгоритми

Алгоритми, у яких використовується тільки структура «Слідування», називаються лінійними. В програмах, що реалізують лінійні алгоритми, використовуються команди введення даних, присвоєння і виведення. Будь-яка програма повинні прийняти вхідні дані (введення), опрацювати їх і повернути результат (виведення).

 

Введення даних

Команда input() призначена для введення даних з клавіатури. Коли програма зустрічає команду input, вона призупиняє роботу і очікує, поки користувач введе дані і натисне Enter. В дужках записується підказка користувачеві, що саме потрібно ввести.

Приклад 25.1. Випробуємо у вікні консолі, як працює input():

Значення, отримане від команди input, Python сприймає як рядок (послідовність літер), навіть якщо ми ввели число.

 Приклад 25.2. При спробі додати до значення змінної а числа 3 виникне помилка, тому що Python не знає, як додати число до рядка.

Необхідно виконати перетворення введеного значення в число за допомогою функції int(). Функція int(s) перетворює рядок s в ціле число. Приклад 25.3. Тепер помилки немає:

Функція float(s) перетворює рядок s в дробове число. Вказівка присвоєння В Python, як і в більшості сучасних мов програмування, ми присвоюємо значення змінної за допомогою знаку «=». Вираз присвоювання, оскільки x=7, наказує комп'ютеру запам'ятати число 7 у змінній x. Загальний вигляд команди присвоєння: А = В, де А – ім'я змінної, В – константа, змінна або вираз. Схема виконання вказівки присвоєння: спочатку обчислюється значення виразу в правій частині вказівки присвоєння, потім це значення надається змінній, ім’я якої записане в лівій частині. Присвоєння заповнює ділянку пам'яті, відведену для змінної, новим значенням, одночасно знищуючи старе.

Приклад 25.4. Наступні команди присвоюють змінній rabbits значення 5, потім те ж значення присвоюють змінній hats:

У виразах можна використовувати змінні. Якщо в правій частині оператора присвоєння записати вираз, то змінна в лівій частині набуває значення виразу.

Приклад 25.5. Нехай a=10, x=2, y=3. Тоді після виконання вказівки присвоєння а = x + y змінна а отримає значення 5.

Приклад 25.6. Нехай a=10. Тоді після виконання вказівки присвоєння а = а+5 змінна а отримає значення 15.

Виведення значень змінних

В попередніх прикладах ми вже зустрічали команду print, яка потрібна, щоб вивести текст у вікно консолі.

Приклад 25.7. За допомогою команди print можна дізнатися значення змінної.

Приклад 25.8. Якщо потрібно вивести значення декількох змінних або виразів, їх потрібно перелічити через кому:

 

 

 

 

Приклад 25.9. За допомогою команд input і print можна організувати діалог користувача з програмою:

Для тих, хто хоче знати більше.

P.S. Деякі хитрощі синтаксису Python («синтаксичний цукор»):

  1. Якщо хочете збільшити або зменшити змінну на певне значення, можна записати це так:

i+=5

Це буде рівнозначно виразу i=i+1

Аналогічно – зменшення змінної (наприклад, на 1):

i-=1 (вираз можна записати як i=i-1).

  1. Можна декілька змінних записати через кому і в один рядок присвоїти їм значення:

x, y, z = 10, 12, 5

Це робить код більш компактним.

  1. Можна легко переставити дані між двома змінними: a, b = b, a

Наприклад:

Class_10A = “Петров”

Class_10B = “Іванов”

Class_10A, Class_10B = Class_10B, Class_10A

Результат можна інтерпретувати як те, Петрова з 10А перевели в 10В, а на його місце в 10А перевели Іванова з 10В.

  1. Скорочені дії можна виконувати і з текстовими рядками. Наприклад:

message = “Hello”

message+=” World!”

print(message)

У результаті змінна рядкового типу і рядок “ World!” додадуться, і ми отримаємо фразу Hello World! (зверніть увагу, перед World ми поставили пробіл, аби текст у нас вийшов у вигляді двох речень).

  1. Можна декілька команд записувати через крапку з комою:

name=input(“Як вас звати?”); print (“Будьмо знайомі, ”, name)

У нашому прикладі ми записали команду отримання з клавіатури імені користувача, і тут же через крапку з комою – команду виведення привітання.

Підсумок – «синтаксичний цукор» – корисна річ, яка полегшує програмісту написання коду, але цю можливість слід використовувати зважено, аби не ускладнити код і не зробити його менш читабельним.

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

1. Для чого призначена команда input()?

2. Для чого призначена команда print()?

3. Назвіть константи і змінні в списку виведення:

print (‘а=’, а, 5, ‘3 * b’, 3 * b)

4. Чому дорівнює значення x після виконання послідовності присвоювань:

а) y = 2; х = у;   б) x = 8; х = x + 2;

в) x = 5; x = -x;   г) х = 10; х = х + 3?

5. Після виконання оператора х = у + х нові значення змінних х = 10, у = 3.

    Чому дорівнювали х і у до виконання оператора присвоєння?

6. Після виконання оператора х = у + х нові значення змінних х = 3, у = 10.

    Чому дорівнювали х і у до виконання оператора присвоєння ?

Міні-шпаргалка по Python.

  • Команда присвоєння: message = “Hello”
  • Команда введення даних: name = input(“Як вас звати? ”)
  • Якщо ви хочете просто призупинити виконання програми, аби користувач зміг прочитати повідомлення чи подумати над діями, можна використати команду

input(“Для продовження натисніть Enter”)

  • Команда виведення даних: print(“Будьмо знайомі, ”, name)
  • Перетворення рядка в ціле число (команда int): x = int(x)
  • Перетворення рядка в дробове число з «плаваючою комою» (команда float): x = float(x)
  • «Синтаксичний цукор»:
  • i+=1
  • message+=” World”
  • a, b = b, a
  • x, y, z = 10, 15, 2

 

 


Черепашача графіка

У світі Python Черепашкою зветься уявний робот – пристрій, який переміщається по екрану і повертається в заданих напрямках, при цьому залишаючи (або, за вибором, не залишаючи) за собою намальований слід заданого кольору і ширини. Положення і напрямок руху Черепашки відображає невелика чорна стрілочка, яка повільно пересувається по екрану. Це дозволяє відстежити рух Черепашки і зрозуміти, яким чином кожен рядок коду впливає на траєкторію руху Черепашки. Черепашка допоможе нам вивчити основи комп'ютерної графіки, і ми будемо малювати за її допомогою цікаві рисунки.

Система координат

Результат виконання Черепашкою команд відображається у вікні Python Turtle Grafics (див. малюнок). Для визначення місцезнаходження Черепашки використовують координати. Ви вже знаєте, що таке координатна пряма, і вмієте визначати положення точки на прямій. Але для малювання нам доведеться користуватися орієнтирами не тільки вздовж прямої, а й на площині. Будь-яка точка у вікні Python Turtle Grafics може бути задана парою чисел (X, Y). Координатні осі – це дві координатні прямі, які перетинаються під прямим кутом. Центр вікна Python Turtle Grafics – точка перетину невидимих координатних осей – точка з координатами (0, 0). Вертикальна координата Y зростає знизу до верху, а горизонтальна Х – зліва направо. На математиці ви працювали з числами, розташованими на координатній прямій праворуч від 0. Але горизонтальну числову пряму можна продовжити вліво, а вертикальну – вниз від 0, а на променях ліворуч і знизу від 0 розташовані від’ємні числа, тобто числа зі знаком мінус (-).

Команди Черепашки

Для завантаження команд роботи з Черепашкою потрібна команда:

import turtle

Після введення цієї команди ви можете давати Черепашці команди малювання. Наприклад:

turtle.forward(100) – проповзти 100 кроків.

Але таке імпортування модуля є не зовсім зручним – щоразу треба писати назву модуля turtle, а далі через крапку – команду. Тож більш раціональним рішенням є такий вид імпортування (надалі використовуйте саме його):

from turtle import *

Якщо у вашій програмі є і команди введення-виведення, і команди малювання, перед початком малювання запишіть команду pendown() – почати малювати; а завершивши створення малюнку – команду penup() – закінчити малювати.

Таблиця 1: команди модуля Черепашка

Приклад реалізації «Черапашачої графіки»

from turtle import *

#Малюємо човника

goto(-20,20)

goto(100,20)

goto(80,0)

goto(0,0)

up()

#Малюємо парус

goto(40,20)

down()

goto(40,120)

goto(60,60)

goto(40,20)

Створюємо кольоровий малюнок

Черепашка може залишати не тільки чорний, але й кольоровий слід.

З бібліотекою turtle ви можете використовувати велику кількість різноманітних кольорів. Назва кольору (англійською мовою) береться в лапки, наприклад, ‘red’,‘yellow’, ‘green’ тощо.

/Відвідайте сайт www.tcl.tk/man/tcl8.4/TkCmd/colors.htm, щоб переглянути повний список кольорів/

Таблиця 2: задання кольорів малювання фігур за допомогою модуля Черепашка

Команда

Призначення

сolor(s)

Встановити колір сліду Черепашки в s

сolor(s1,s2)

Встановити колір сліду Черепашки в s1, а колір заливки замкненої фігури в s2

Для зафарбування замкнених фігур потрібні команди:

begin_fill() – почати стежити за черепашкою для заповнення області

end_fill() – заповнити кольором s2 область, пройдену Черепашкою, починаючи з begin_fill().

Приклад 26.3. У вікні консолі введіть команди для малювання червоного кола, зафарбованого синім кольором.

Змінюємо зовнішній вигляд Черепашки

Ви помітили, що Черепашка у вікні Python Turtle Grafics зображується у вигляді стрілки.

Напрямок стрілки вказує нам напрямок руху Черепашки. Але ми можемо змінити вигляд Черепашки за допомогою команди shape(Name), де Name – назва форми Черепашки з переліку ‘arrow’, ‘turtle’, ‘circle’, ‘square’, ‘triangle’, ‘classic’.

Приклад 26.5. Задаємо для Черепашки форму turtle:

>>> shape(‘turtle’)

>>> forward(100)

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

Приклад 26.6. Черепашка наслідує кольори малювання:

>>> color('red', 'blue')

>>> shape(‘turtle’)

>>> forward(100)

Після завершення алгоритму малювання зображення Черепашки на малюнку може бути зайвим. Сховати Черепашку можна за допомогою команди hideturtle(), а показати – за допомогою команди showturtle().

Черепашача графіка надає нам можливості створювати яскраві складні малюнки.

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

1. Яка команда потрібна для завантаження команд роботи з Черепашкою?

2. Запишіть команди для Черепашки:

  1. Проповзти вперед 20 кроків.
  2. Намалювати коло радіуса 30 пікселів.
  3. Підняти перо.
  4. Встановити зелений колір сліду Черепашки.
  5. Встановити червоний колір сліду Черепашки, синій колір заливки замкненої фігури.

Для тих, хто хоче знати більше:

1. Додаткові команди Черепашки

backward(n)

Проповзти назад на n кроків (пікселей)

 

fill(f)

Використовується для малювання зафарбованих областей. Починаючи малювати зафарбовану область, дайте команду fill(1), а закінчивши малювання області – fill(0).

reset()

Повернення Черепашки до початкового стану: очищується екран, скидаються усі параметри, Черепашка встановлюється на початок координат, дивлячись управо.

сlear()

Очистити екран

mainloop()

«Зациклити» алгоритм, запустити опрацювання подій. Ставиться наприкінці тексту програми.

speed(n)

Задати швидкість пера (0 – миттєво, 1 – повільно, 10 – швидко).

done()

Черепашка очікує закриття вікна

hideturtle()

Сховати Черепашку

showturtle()

Показати Черепашку

bye()

Закрити графічне вікно Черепашки

home()

Повернути черепашку «додому» – в точку з координатами (0, 0)

2. Скорочення команд

Якщо вам ліньки писати довгі команди або ви просто побоюєтесь допуститися помилки, в Черепашці передбачена можливість скорочених варіантів команд. Наприклад:

Скорочений запис

Повний запис

Розшифрування команди

fd(100)

forward(100)

Проповзти 100 кроків

rt(90)

right(90)

Повернути направо на 90 градусів

lt(90)

left (90)

Повернути наліво на 90 градусів

 

3. «Українізація» Черепашки

Якщо хочете навчити Черепашку слухатися україномовні команди, можете самі створити список команд, скориставшись змінними:

уперед = forward

наліво = left

направо = right

Тепер можна писати команди українською мовою: уперед (100); наліво (60); уперед (100); наліво (60)

Більш «просунуті» програмісти можуть створити окремий файл з назвою черепашка.py

Далі у тій же папці створіть файл проекту і введіть команду імпорту (регістр букв має бути строго таким, як і назва файла!):

from черепашка import *

Все! Тепер можете задавати команди українською мовою! Але будьте пильні – якщо якась команда не «українізована» (тобто відсутня у файлі «українізації»), то отримаєте помилку. І не забувайте про регістр букв у назві модуля! Це важливо!


Алгоритми з розгалуженнями

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

Логічні операції

Крім вже відомих нам числового і рядкового типів даних в Python є логічний тип bool. Цей тип отримав назву на честь англійського математика Джорджа Буля, який створив один розділів математики – математичну логіку. Змінна типу bool може приймати одно з двох значень – True (Істина) або False (Хибність).

Умови в програмі записуються у вигляді логічних виразів. Логічними є вирази, результатом яких є True або False. Простий логічний вираз (проста умова) утворюється за допомогою логічних операцій:

Бувають ситуації, коли одночасно треба перевірити виконання декількох умов.

Складена умова – кілька простих умов, з'єднаних логічними операціями and (логічне І, інакше – логічний добуток), or (логічне АБО, інакше – логічна сума), not (логічне заперечення).

Приклад 28.2. Приклади складених умов:

not а <=3 – рівнозначне виразу а > 3.

age >=10 and age <= 18 – істинне тоді і тільки тоді, коли значення age знаходиться в проміжку від 10 до 18. age < 10 or age > 18 – істинне для всіх значень age, які не належать проміжку від 10 до 18.

Приклад 28.3. Логічні операції працюють і у вікні консолі. Виконайте цей приклад, щоб ознайомитися з результатами обчислення логічних виразів:

Умовний оператор if...else

Алгоритмічній конструкції «повне розгалуження» відповідає умовний оператор if...else.

Синтаксис оператора: if <умова> : <оператор 1> else: <оператор 2>

Якщо результатом перевірки умови є значення True, то виконується блок дій <оператор 1>.

Якщо перевірка умови дала результат False, виконується блок дій <оператор 2>, який міститься після службового слова еlse.

Приклад 28.6. Якщо виконати цю програму, у вікні консолі отримаємо результат «Невірно».

a = 13

if a == 12:

      print("Вірно")

else: # Інакше

      print("Невірно")

Приклад 28.7. Якщо користувач вводить «у», друкується вітання «Happy Вirthday!», інакше текст «Good luck!».

D:\Temp\Безымянный.jpg

 

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

Бачите відступи в коді? Код потрібно писати саме так (для відступів – чотири пробіли або клавіша TAB). Крім того, в кінці рядка коду логічного оператора має стояти двокрапка. Якщо далі натиснути Enter, середовище розробки Python саме виконає необхідний відступ. Для переходу на початок рядка скористайтеся клавішею BackSpace.

Приклад 28.8. Оператор if реалізує таку дію: якщо a>b, змінні міняються значеннями так, щоб виявилося

(При бажанні модифікуйте програму, щоб a та b можна було вводити з консолі).

Зверніть увагу: в прикладі 28.8 на відступи від лівого краю: команди, вкладені в гілки оператора if, були записані на одній вертикалі. Для реалізації таких відступів використовуємо чотири пробіли або клавішу TAB. Всі команди мають бути записані в один стовпчик з однаковою кількістю відступів! Наявність таких відступів – ключова особливість синтаксису Python. Не забувайте про це!

Отже, оператор if є важливим інструментом програмування, який стане вам в нагоді при створенні тестових та ігрових програм.

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

    1. Як записується і виконується умовний оператор у неповній формі?

    2. Як записується і виконується умовний оператор у повній формі?

    3. Як виконуються логічні операції and, or, not?

Практичні вправи:

    1. Яких значень набудуть змінні а і в після виконання умовних операторів, наведених у таблиці, для указаних початкових значень а і b?

Перевірте це у середовищі програмування Python. Спробуйте самі або за допомогою вчителя розібратися, що саме виконує алгоритм і яка його логіка.

    2. Запишіть у вигляді простої умови:

        а) х більше 10;

        б) число х не більше числа у;

        в) x – парне число.

    3. Запишіть у вигляді складеної умови:

        а) 2 < x < 10;

        б) x не належить проміжку (2,10).

Найважливіше в цьому розділі:

  1. Змінна логічного типу описується як bool;
  2. Змінні логічного типу набувають двох значень – або True (Істина) або False (Хиба);
  3. Для побудови логічних виразів використовують спеціальні символи чи їх комбінації: <, >, ==, <=, >=, !=;
  4. Для побудови складених умов використовують кілька простих умов, з'єднаних логічними операціями and (логічне І, інакше – логічний добуток), or (логічне АБО, інакше – логічна сума), not (логічне заперечення).
  5. Для реалізації алгоритму розгалуження використовують умовний оператор if...else;
  6. В конструкції if...else важливо пам’ятати про відступи!


Вкладені розгалуження

У попередньому параграфі ми розглянули алгоритми і програми, що містять одну структуру розгалуження. Але часто в алгоритмі потрібно декілька разів вибирати, які дії виконати. Важливо відзначити, що в алгоритмах і програмах розгалуження можуть бути послідовними (розташованими одне за іншим) і вкладеними (одне всередині іншого). Вкладені розгалуження застосовуються, якщо при виконанні (або невиконанні) деякої умови знову необхідно робити вибір. У такій ситуації в умовному операторі по гілці True (після двокрапки) або по гілці False (після службового слова еlse) використовують оператор іf.

Вкладені розгалуження

Розглянемо задачу: знайти найбільше значення серед трьох чисел: a, b, c. Результат присвоїти змінній max. Алгоритмічна структура розгалуження має тільки дві гілки, а у нас три варіанти (найбільшим може бути будь-яке з чисел: a, b, c), тому використаємо вкладення розгалужень.

Поміркуємо: якщо a>b, то найбільшим є більше з чисел а і с; інакше найбільшим є більше з чисел b і с. Таким чином, після вибору більшого з чисел a і b знов потрібно вибрати більше з чисел а і с, а по гілці False – вибрати більше з чисел b і с. Блок-схема алгоритму представлена на малюнку:

Запишемо програмний код даного алгоритму:

Відступи

В мові Python велике значення мають відступи команди від лівого краю вікна програми. Команди, вкладені в гілки оператора if, об'єднуються в блоки по величині відступів. Відступ може бути будь-яким, головне, щоб в межах одного вкладеного блоку відступ був однаковий.

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

  •    Якщо кількість кутів не дорівнює 3 або 4, видається повідомлення «Помилка в кількості кутів»;
  •    Інакше: якщо кількість кутів дорівнює 3, то малюється трикутник, інакше малюється квадрат.

from turtle import *

print('Накреслимо багатокутник')

n = input('Кількість кутів? (3 або 4) ')

a = int(n)

if not (a == 3 or a == 4):

    print('Помилка в кількості кутів')

else:

    if a == 3:

        forward(100)

        right(120)

        forward(100)

        right(120)

        forward(100)

        print('Це трикутник')

    else:

        forward(100)

        right(90)

        forward(100)

        right(90)

        forward(100)

        right(90)

        forward(100)

        print('Це чотирикутник')

 

 

 

Отже, вкладені розгалуження використовуються в тих випадках, коли потрібно перевірити послідовно дві або більше умови. Під час запису програмного коду уважно слідкуйте за відступами, щоб команди, вкладені в гілки оператора if, були записані на одній вертикалі. По-перше, цього вимагає синтаксис мови Python, а по-друге, це робить текст програми більш наочним і зрозумілим.


Множинний вибір

Для реалізації такого алгоритму використовують оператор elif.

   

    x = input('Введіть будь-яке ціле число')

    x = int(x)

    if x <0:

        print(“Це від’ємне число”)

    elif x > 0:

        print(“Це додатнє число”)

    else:

        print(“Це нуль”)

Зверніть увагу! Використовуючи оператор print, ми використали подвійні лапки, аби уникнути помилки при виведенні на екран тексту, що містить апостроф, який інтерпретується як одинарні лапки. (Пригадайте, що в Python для відображення тексту можна використовувати два види лапок).

Завдання для роздумів: спробуйте модифікувати попередній текст програми, використавши оператори розгалуження if… elif… else для малювання багатокутника. Поміркуйте, який запис є більш читабельним і чому.

Для тих, хто хоче знати більше

 

  1. Перевірка істинності в Python
  • Будь-яке число, яке не дорівнює 0, або непустий об’єкт – істина;
  • Числа, котрі дорівнюють 0, пусті об’єкти або значення None – хиба;
  • Операції порівняння повертають значення True або False;
  • Логічні оператори or та and повертають істинний або хибний операнд:
  • X and Y – істина, якщо обидва об’єкти X та Y істині (and – оператор «і»);
  • X and Y – істина, якщо хоча б одне зі значень  X або Y істинне (or – оператор «або»);
  • not X – істина, якщо X хибне (not означає заперечення).
  1. Тримісний вислів if/else.

Пригадуєте «синтаксичний цукор»? Для спрощення запису розгалужень у Python можна використовувати певні хитрощі. Розглянемо приклад:

    if X:

        A = 'Hello!'

    else:

        A = 'Good-bye!'

Якщо значення X істинне, то A присвоюється значення 'Hello!', якщо ні – то 'Good-bye!'

Наведена вище конструкція доволі коротка, але займає 4 рядки. А має вивести один результат. Тож було б непогано і вираз записати в один рядок.

Саме для таких випадків і придумали тримісний вислів if/else:

A = 'Hello!' if X else 'Good-bye!'

В даній конструкції інтерпретатор присвоїть змінній  A значення 'Hello!', якщо значення X є істиною, інакше виконається вираз після else.

Ще один приклад: A = B if X = 0 else C

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

1. Поясніть схему виконання оператора if, в якому застосовані вкладені оператори розгалуження.

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

3. Яких значень набудуть змінні а і b після виконання умовного оператора іf для наведених наборів початкових значень (див. таблицю)? Перевірте це на практиці.

Практичні завдання

1. Напишіть програму, яка для двох чисел а і b виводить відповідь «a>b», «b>a» або «a=b».

2. Напишіть програму, яка запитує вік школяра і за допомогою операторів розгалуження визначає, в якій ланці він навчається: початкова школа (1-4 класи), основна (5-9 класи) або старша (10-11 класи).

Міні-шпаргалка по Python:

  1. Множинний вибір:

if X == 0:

    print('X = 0')

elif X > Y:

    print('X > Y')

elif X < Y:

    print('X < Y')

else:

    print('X = Y')

  1. При порівнянні вважають, що будь-яке число, яке не дорівнює 0, або непустий об’єкт – істина. Операції порівняння повертають значення True або False.В складних виразах можуть використовуватися логічні оператори and, or, not («і», «або», «не»).
  2. Тримісний вислів if/else: A = B if X = 0 else C

Алгоритми з повтореннями. Цикл for

Повторення (цикл) – це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів. Для запису алгоритмів із повторенням (циклів) мовою Python використовують 2 види операторів циклу: з параметром та з умовою. Серію команд, що повторюється під час виконання циклу, називають тілом циклу. Кожне виконання тіла циклу називають ітерацією.

Повторення команд

Цикл for повторює блок команд (тіло циклу) задану кількість разів, позбавляючи необхідності декілька разів писати одні і ті самі команди. Синтаксис, або правила запису циклу for, виглядає наступним чином:

for х in range(n):

 <тіло циклу>

В першу чергу ми вказуємо ключове слово for, після чого указуємо змінну х, яка буде лічильником циклу.

Примітка: не думайте, що треба обирати саме змінну x. Це все – питання смаку програміста. Дехто, наприклад, полюбляє i, j, t, k, n тощо. Це може бути і ціле слово – наприклад, flag або count. Головне – аби ім’я змінної не суперечило синтаксису.

Питання: а навіщо потрібна змінна? Це очевидно – десь же треба зберігати інформацію про те, скільки разів «прокрутився» цикл. Так що, по суті, ця змінна нічим не відрізняється від решти. Її можна прочитати, проаналізувати, а отже, знати, на якій стадії виконання знаходиться цикл.

Ключове слово in наказує Python по черзі надати змінній  x всі значення в діапазоні від 0 до n-1. Не забувайте, що комп'ютер зазвичай починає рахувати з 0, а не з 1, як люди. Вбудована функція range повертає безперервну зростаючу послідовність цілих чисел, які можна використовувати в якості індексів всередині циклу. Щоб дати зрозуміти комп'ютеру, які команди слід повторити, використовуються відступи (пригадайте, те саме вимагали записи алгоритмів з розгалуженням). Можна зробити відступ для кожної повторюваної в тілі циклу команди, натискаючи для цього клавішу Tab у вікні нового файлу.

Приклад. Створимо цикл, що виконуватиме якісь дії, наприклад, 4 рази. Де це може знадобитися? Ну, наприклад, при малюванні чотирикутника (до черепашачої графіки ще повернемося).

for x in range(4):

 print (x)

Складнувато в порівнянні з розгалуженням, правда? Але нічого страшного в цьому записі немає – просто трошки більше ключових слів і все та ж незмінна двокрапка й відступи.

Виконавши цей цикл у середовищі інтерпретатора, отримаємо послідовність цифр від 0 до 3. Чому ж у кінці маємо 3, а не 4? Адже ми записали range(4) і повинні розраховувати на 4? Все дуже просто – порахуйте кількість виведених цифр. Їх рівно чотири – 0, 1, 2, 3! Нагадуємо, що Python веде рахунок не з 1, а з 0. Функція range(4)  задає список значень, що вписуються у цей діапазон. У нашому випадку це список чисел [0, 1, 2, 3]

Лічильник циклу for

Крім найпростішого циклу, описаного вище, де змінна з кожним «кроком» змінює своє значення на 1, існує ще і інший цикл з лічильником. Змінна-лічильник циклу веде відлік, скільки разів повторився цикл, почергово набуваючи всіх значень з указаного діапазону. Діапазон значень може бути заданий у вигляді текстового рядка. Лічильник почергово приймає значення літер, з яких складається указаний рядок.

Приклад:

 a = "Україна"

 for x in a:

  print("Буква: ", x)

Результат: на екран будуть почергово виведені літери, з яких складається слово «Україна».

Зверніть увагу: у записі відсутня функція range! Замість неї використовується змінна, яка є текстовим рядком. Тобто кількість літер відповідає за кількість ітерацій (кількість виконань команд циклу). Взагалі-то можна було б записати і так, щоправда, в такому випадку цикл «прив’язаний до конкретного рядка («Україна»):

 for x in "Україна":

  print("Буква: ", x)

А якщо у циклі один рядок, то і всю конструкцію теж можна записати в один рядок:

for x in "Україна": print("Буква: ", x)

Чи згодні ви з тим, що синтаксис Python  дуже гнучкий?

Для тих, хто хоче знати більше

Використання списків.

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

Список – це набір значень, розділених комами, взятий у квадратні дужки. У списках можна зберігати значення будь-якого типу, будь то числа або рядки. Скажімо, name = ["Саша", "Маша", "Вася", "Петя"]

Лічильник почергово приймає значення зі списку.

 b = [2, 4, 6, 8, 10]

 for x in b:

  print ("Число: ", x)

Задання кроку і напрямку циклу.

Повний запис циклу for має такий синтаксис:

for х in range(<Від>, <До>, <Крок>):

   <тіло циклу>

 for х in range(1, 20, 2):

  print(x)

Результат – ми отримаємо послідовність чисел від 1 до 20 з кроком 2, тобто 1, 3, 5 … 19 (непарні числа). Замінимо 1 на 2 – і отримаємо список парних чисел.

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

for х in range(5, 1, -1):

  print("Число: ", x)

Результат – ми отримаємо послідовність чисел у зворотному порядку, тобто 5, 4, 3, 2.

Оператор continue.

Оператор continue починає наступний "прохід" циклу, минаючи решту тіла циклу for.

a = ""

for i in "Hello children":

  if i == "o":

   continue

  a = a + i

print(a)

Результат: замість фрази "Hello children" ("Привіт діти") отримуємо фразу "Hell children" ("Пекельні діти"). Чому так сталося? Причина проста – коли значення i == "o", оператор continue  пропустив команду a = a + i, не додавши літеру «о» до змінної a, результатом чого і стала зміна фрази.

Оператор break.

Оператор break, на відміну від оператора continue достроково перериває виконання циклу for.

a = ""

for i in "Hello world":

  if i == "o":

   break

  a = a + i

print(a)

Результат: замість фрази "Hello world" ("Привіт світ") отримуємо лаконічну фразу "Hell" ("Пекло"). Коли значення i == "o", оператор break  достроково перервав цикл, залишивши нам «обрубок» фрази.

Чарівне слово else.

Слово else, якщо його використати у циклі for, перевіряє, чи було виконано достроковий вихід з циклу інструкцією break, чи це відбулося "природнім" шляхом, без усіляких насильницьких переривань. Блок інструкцій усередині else виконується лише у тому випадку, якщо вихід з циклу відбувся без використання break.

a = "Hello Україна"

for i in a:

  if i == "ы":

   print("Знайдено ы. Перериваю цикл")

   break

else:

  print("Букву ы знайдено не було")

Результат: якщо рядок міститиме літеру «ы», програма повідомить про це і достроково перерве цикл. Якщо цього не сталося і цикл «добіг до кінця», буде виконано те, що міститься усередині else.

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

1. Поясніть правила виконання циклу for.

2. Яких значень набуває змінна х в ході виконання циклу for х in range(5)?

3. Яких значень набуває змінна х в ході виконання циклу for х in range(0, 10, 2)?

4. Що буде надруковано в ході виконання циклу:

 s = "цикл"

 for х in s:

  print (x)

5. Що буде надруковано в ході виконання циклу:

 b = [1,3,5,7,9]

 for х in b:

  print (x)

6. Чому дорівнює s після виконання циклу:

 

Словничок по Python

Цикл – алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів.

Тіло циклу – cерія команд, що повторюється під час виконання циклу.

Ітерація – кожне виконання тіла циклу.

Список – це набір значень, розділених комами, взятий у квадратні дужки.


Алгоритми з повтореннями. Цикл while

Пригадаймо: повторення (цикл)це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів.

Цикл for зручно використовувати, якщо відома кількість повторень. Але часто цикл потрібно повторювати, поки виконується деяка умова. Цикл while буде повторюватися до тих пір, поки це потрібно.

Як працює цикл while.

Цикл While («Поки») буде повторюватися, поки виконується задана умова. Ця умова називається умовою циклу і повертає True або False.

Синтаксис оператора:

whіle <умова> :

<тіло циклу>

Тут <умова> – логічний вираз, що є умовою виконання циклу; <оператор> – простий або складений оператор, який виконується при кожній ітерації. Виконання оператора циклу while починається з обчислення значення логічного виразу – умови циклу (див. блок-схему). Якщо умова істинна, то виконуються оператори тіла циклу і керування повертається на перевірку умови. Якщо ж умова хибна, то виконується оператор, який є наступним після оператора while. Якщо при першій перевірці умова виявиться хибною, тіло циклу не виконається жодного разу.

Приклад. Для початкового значення х=7 цикл while x<10 виконається 3 рази:

 x = 7

 while x <10:

  x = x + 1

  print(x)

Результат: послідовно отримаємо числа 8, 9 та 10.

Пояснення: доки x < 10 (така задано в умові), змінна x збільшується на 1, і результат виводиться на екран. Після чергового «пробігу» циклу while змінна x дорівнює 10, що вже не відповідає умові, і цикл завершується.

Приклад. Напишемо програму, в якій користувач вводить з клавіатури математичний вираз і отримує відповідь. Для обробки математичного виразу і обчислення результату використовується функція eval (), яка обробляє рядок клавіатурних символів точно так же, як і оболонка Python IDLE. Таким чином, коли ми вводимо приклад в якості вхідних даних, функція eval () може дати нам відповідь на завдання.

Приклад. В циклі продовжується побудова відрізків і поворот Черепашки на 170°, поки Черепашка не повернеться в точку (0,0) (abs(pos()) < 1).

from turtle import *

color ('blue', 'yellow')

begin_fill()

forward(200)

while abs(pos())>1:

 left(170)

 forward(200)

end_fill()

up()


Нескінченний цикл

Приклад. Наведений фрагмент програми ілюструє нескінченний цикл.

num = 0

while num < 20:

print (num)

У тілі циклу значення num не змінюється, тому умова num<20 завжди правильна і поданий цикл є нескінченним. Якщо в якості умови циклу while задати True, умова ніколи не стане хибною і цикл не завершиться.

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

Можна зупинити виконання нескінченного циклу у вікні консолі IDLE. Для цього у вікні консолі натисніть сполучення клавіш Ctrl+C. Після цього IDLE буде відправлений запит на зупинку програми. Можливо, доведеться натиснути Ctrl+C декілька разів, щоб IDLE зреагувала на запит.

 

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

  1. Поясніть структуру і правила виконання циклу з умовою.
  2. У чому відмінність у використанні циклу з параметром і циклу з умовою?
  3. У якому випадку цикл Whіle не виконається жодного разу?
  4. У якому випадку виникає «нескінченний цикл»?
  5. Назвіть початкові значення змінних; умову продовження циклу; оператори тіла циклу.

  1. Дано фрагмент програмного коду. Заповніть таблицю:

Пригадаймо, що ми вивчали про цикл for.

Оператор continue.

Оператор continue починає наступний "прохід" циклу, минаючи решту тіла циклу.

Оператор break.

Оператор break, на відміну від оператора continue достроково перериває виконання циклу.

Чарівне слово else.

Слово else, якщо його використати у циклі for або while, перевіряє, чи було виконано достроковий вихід з циклу інструкцією break, чи це відбулося "природнім" шляхом, без усіляких насильницьких переривань. Блок інструкцій усередині else виконується лише у тому випадку, якщо вихід з циклу відбувся без використання break.

Словничок по Python

Цикл – алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів.

Існує два види циклів – for (з заздалегідь заданою умовою) та while  (коли умова заздалегідь невідома). Залежно від поставленої умови, доцільно обирати той чи інший тип циклу. Крім того, while  дозволяє реалізовувати безкінечні цикли, перервати які можна комбінацією клавіш Ctrl+C.

Тіло циклу – серія команд, що повторюється під час виконання циклу.

Ітерація – кожне виконання тіла циклу.

Список – це набір значень, розділених комами, взятий у квадратні дужки.

 

Середня оцінка розробки
Структурованість
5.0
Оригінальність викладу
5.0
Відповідність темі
5.0
Загальна:
5.0
Всього відгуків: 1
Оцінки та відгуки
  1. Квятковський Сергій
    Загальна:
    5.0
    Структурованість
    5.0
    Оригінальність викладу
    5.0
    Відповідність темі
    5.0
docx
Додано
21 грудня 2020
Переглядів
16893
Оцінка розробки
5.0 (1 відгук)
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку