Professional Documents
Culture Documents
Python 3
Python 3
Введення
значення
х
y x2
Виведення
у
Кінець
106
Початок
Введення
значення
х
так Х>0 ні
y x y x2
Виведення
у
Кінець
Вираз і=1..n
Оператори
Тіло циклу
Модифікація
параметрів
циклу
а б
Рис.3.3. Приклад блок-схеми реалізації циклічного алгоритму (а – цикл з
передумовою, б – цикл з лічильником)
107
3.2. Реалізація алгоритмів з розгалуженням
if ЛОГІЧНА_УМОВА:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ
ні так
108
умовного оператора, яке буде виконуватися в разі, якщо умова в
заголовку оператора істинна.
x=2
if x > 0:
print("x – додатнє")
if x < 0:
print("x – від’ємне")
Результатом запуску даного коду буде:
x – додатнє
1. Привласнили значення 2 змінній x.
2. Зробили умовне порівняння за допомогою операторів if,
виконуючи різні фрагменти коду в залежності від значень змінної
x.
3. Викликали функцію print(), щоб вивести текст на екран.
Рядки if в Python є операторами, які перевіряють, чи є
значення виразу (в даному випадку змінна x) рівним True.
print() – це вбудована в Python функція для виведення
інформації. Вбудовані функції Python – це іменовані фрагменти
коду, які виконують певні операції.
Кожен рядок print() відокремлений пробілами під
відповідною перевіркою.
У більшості мов програмування символи начебто фігурних
дужок ({і}) або ключові слова begin і end застосовується для того,
щоб розбити код на розділи. У цих мовах хорошим тоном є
використання відбиття пробілами, щоб зробити програму більш
зрозумілою для себе та інших. Існують навіть інструменти, які
допоможуть красиво вибудувати код.
Гвідо ван Росум при розробці Python вирішив, що виділення
пробілами буде досить, щоб задати структуру програми і
уникнути уведення дужок. Python відрізняється від інших мов
тим, що пробіли в ньому використовуються для того, щоб задати
структуру програми.
Як правило, використовують чотири пробіли для того, щоб
виділити кожен підрозділ, хоча можна використовувати будь-яку
кількість пробілів, Python чекає, що всередині одного розділу
буде застосовуватися однакова кількість пробілів.
109
Рекомендований стиль – PEP-8 (http://bit.ly/pep-8) –
використовувати чотири пробіли. Не рекомендується
застосовувати табуляцію або поєднання табуляцій і пробілів – це
заважає підраховувати відступи.
З огляду на це, в конструкції if код, який виконується при
істинності умови, повинен обов’язково мати відступ вправо.
Решта коду (основна програма) повинен мати той же відступ, що
і слово if.
Зустрічається і більш складна форма розгалуження: if-else.
Якщо умова при інструкції if є хибною, то виконується блок коду
при інструкції else:
if ЛОГІЧНА_УМОВА:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_1
else:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_2
ні так
110
Початок
x = int(input("Введіть х= Введення
значення
")) х
if x > 0:
y=x**0.5 +
Х>0
-
else:
y=x**2
y x y x2
print("y =", y)
Отримаємо:
Введіть х= 9 Виведення
у
y = 3.0
Кінець
if ЛОГІЧНА_УМОВА_1:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_1
elif ЛОГІЧНА_УМОВА_2:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_2
elif ЛОГІЧНА_УМОВА_3:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_3
...
else:
ПОСЛІДОВНІСТЬ_ВИРАЗІВ_N
111
Цю конструкцію на блок-схемі можна зобразити:
так ні
так ні
так ні
112
Результатом запуску даного коду буде:
3
Оператор pass
В процесі роботи над програмою слід намагатися після
кожної зміни мати працюючу програму, але іноді не завжди
відразу відомо, що необхідно виконати якщо умова приймає
істинне значення, а що в протилежному випадку. В Python
інструкції з розгалуженням, або цикли, або функції з порожнім
тілом заборонені, тому в якості тіла використовується "порожній
оператор" pass.
Припустимо, що заплановано використання умовного
оператора з декількома умовами, але встигнуто написати тільки
один з блоків умовного оператора. При цьому постає питання, як
її налагодити, якщо програма не виконується через синтаксичну
помилку.
if not True:
print("1")
elif not (1+1==3):
elif not (1+1==4):
elif not (1+1==5):
Блоки для випадків, коли значення not (1+1==3), not
(1+1==4), not (1+1==5), ще не написані, тому програма не
виконується через помилку SyntaxError: expected an indented
block.
Ключове слово pass можна вставити на місце відсутнього
блоку:
if not True:
print("1")
elif not (1+1==3):
pass
elif not (1+1==4):
pass
elif not (1+1==5):
pass
113