Лабораторне заняття 13. Базові операції Python та умовний оператор
Мета роботи: ознайомитися з можливостями мови Python по роботі зі змінними та базовими операціями та умовним оператором.
Теоретичні відомості
Python – інтерпретована об'єктно-орієнтована мова програмування високого рівня зі строгою динамічною типізацією.
Незважаючи на зручності інтерактивного режиму роботи при написанні програм на Python, зазвичай потрібно зберігати вихідний програмний код для подальшого використання. В такому випадку створюються файли, які пізніше передаються інтерпретатору на виконання. Такий вихідний код в інтерпретованих мовах програмування називають скриптом. Файли з кодом на Python зазвичай мають розширення py.
Підготувати скрипти можна в тому ж середовищі IDLE. Для цього, після запуску програми в меню слід вибрати команду File → New Window (Crtl + N), відкриється нове вікно. Потім бажано одразу ж зберегти файл (розширення py). Запустити скрипт можна виконавши команду меню Run → Run Module (F5). Після цього в першому вікні з'явиться результат виконання коду.
Завантажити середовище можна на офіційному сайті – www.python.org.
Типи даних
Phyton відноситься до мов програмування з динамічною типізацією. Це означає, що змінні не мають наперед визначеного типу даних, а набувають його в момент присвоєння значення.
До основних типів даних мови Phyton відносять наступні: цілі числа (int) довільної довжини (4, 67, -145, 0); дійсні числа (float) з роздільником у вигляді точки (5.6, 3.87845, -12.0004334); текстові рядки (str) – набір символів, заключений в одинарні чи подвійні лапки ('Деякий текст', "ще деякий текст"); логічний тип (bool), який приймає всього два значення – True або False; комплексні числа (complex) – числа виду 4 + 2j, де j = √-1 .
Базові операції
Python підтримує всі основні математичні операції: додавання (+), віднімання (–), множення (*), ділення (/), цілочисельне ділення (//), остача від ділення (%), піднесення до степеню (**):
a = 5 + 2 # a = 7
a = 5 – 2 # a = 3
a = 5 * 2 # a = 10
a = 5 / 2 # a = 2.5
a = 5 // 2 # a = 2
a = 5 % 2 # a = 1
a = 5 ** 2 # a = 25
Ряд спеціальних операцій дозволяють використовувати присвоєння результату операції першому операнду:
a += 2 # a = a + 2
a -= 2 # a = a - 2
a *= 2 # a = a * 2
a /= 2 # a = a / 2
a //= 2 # a = a // 2
a %= 2 # a = a % 2
a **= 2 # a = a ** 2
Перетворення типів даних
При виконанні операцій над змінними з різними типами даних їх переведення до одного типу даних відбувається автоматично, де це можливо (наприклад, при додаванні цілого та дійсного числа, ціле число буде переведено в дійсне). Однак, часто виникає необхідність зробити це явно, скориставшись для цього відповідними функціями int, float, str, bool, які перетворюють змінні з інших типів даних у цілочисельний, дійсний, текстовий чи логічний тип відповідно, якщо це можливо.
Змінні в мові Python
Імена змінних в Python можуть складатися з алфавітних символів, цифр та знаку підкреслення, з дотриманням певних правил:
- Бажано давати змінним імена, що говорять про призначення даних, на які вони посилаються.
- Ім'я змінної не повинно збігатися з командами мови (зарезервованими ключовими словами).
- Ім'я змінної має починатися з букви або символу підкреслення.
Математичні функції
Для роботи з математичними функціями необхідно підключити відповідну бібліотеку math:
from math import *
Після цього можна скористатися вже готовими функціями (перелік основних наведено в табл. 7.1).
Таблиця 7.1 – Перелік основних математичних функцій
Функція |
Призначення |
ceil(x), floor(x) |
Повертає ціле округлене значення x округлене до більшого або меншого відповідно |
round(x[,y]) |
Повертає округлене значення x до y знаків після коми (за замовчуванням до цілого). Округлення в більшу сторону починається з числа 6 * |
abs(x) |
Повертає абсолютне значення (модуль) числа x * |
factorial(x) |
Повертає факторіал цілого числа x |
trunc(x) |
Повертає цілу частину числа x |
exp(x) |
Повертає значення ex |
log(x[, base]) |
При передачі функції одного аргументу x, повертає натуральний логарифм x. При передачі двох аргументів, другий береться як основа логарифма. |
log10(x) |
Повертає десятковий логарифм x |
pow(x, y) |
Повертає x в ступені y (тип вихідних даних – float) |
sqrt(x) |
Квадратний корінь з x |
sin(x), cos(x), tan(x) |
Повертає синус, косинус та тангенс відповідно. Значення x – в радіанах |
degrees(x) |
Конвертує значення кута x з радіан в градуси |
radians(x) |
Конвертує значення кута x з градусів в радіани |
* – стандартна функція, бібліотеки math не потребує
Умовний оператор
Як і в інших мовах програмування, в Python в якості умовних операторів використовуються спеціальні знаки, подібні до тих, які використовуються в математичних виразах: > (більше), < (менше), >= (більше або дорівнює), <= (менше або дорівнює), а також знак рівності (==) та нерівності (!=).
На практиці доволі часто використовуються більш складні логічні вирази. Може знадобитися отримати відповіді "Так" або "Ні" в залежності від результату виконання двох простих виразів. Наприклад, "змінна new містить значення більше 12 і менше 20" і т.п.
У таких випадках використовуються спеціальні оператори, що об'єднують два і більше простих логічних вирази. Широко використовуються два способи об'єднання: через, так звані, логічні І (and) і АБО (or).
Щоб отримати істину (True) при використанні оператора and, необхідно, щоб результати обох простих виразів, які пов'язує цей оператор, були істинними. Якщо хоча б в одному випадку результатом буде False (неправда), то і весь складний вираз буде хибним.
Щоб отримати істину (True) при використанні оператора or, необхідно, щоб результати хоча б одного простого виразу, що входить до складу складного, був істинним. У разі використання оператора or складний вираз стає хибним лише тоді, коли хибні всі прості вирази, що входять до нього:
x > 3 and x < 10
x < 3 or x > 10
В деяких випадках, для and використовується спрощений формат запису:
3 < x < 10
Для реалізації розгалужень, як і в іншим мовах програмування, використовується умовний оператор if:
if умова:
тіло
Приклад реалізації:
if a <100: # якщо значення змінної a менше 100
c = a ** b # піднести значення змінної a до степеню b
Перший рядок конструкції if – це заголовок, в якому перевіряється умова виконання рядків коду після двокрапки (тіла конструкції).
Однак, логіка програми зазвичай буває складнішою, ніж вибір одного з двох розгалужень. Наприклад, в залежності від значення тієї чи іншої змінної, може виконуватися одна з трьох (або більше) гілок програми.
Зазвичай таку задачу можна вирішити за допомогою вкладених конструкцій if-else. В мові Python, передбачено спеціальне розширення інструкції if, що дозволяє направити потік виконання програми по одному з розгалужень. Дана розширена інструкція, крім необов'язкової частини else, містить ряд рогалужень elif (скорочення від "else if" – "ще якщо"). Частин elif може бути як завгодно багато (в межах розумного, звичайно).
На відміну від використання кількох одиночних інструкцій if, інструкція if-elifelse припиняє перегляд наступних розгалужень, як тільки логічний вираз в поточному розгалуженні поверне значення true. Наприклад, якщо вираз при if (перше розгалуження) буде істинним, то після виконання вкладеного блоку виразів, програма повернеться до основного коду. Приклад використання:
if x > 0:
print(1)
elif x < 0:
print(-1)
else:
print(0)