Операції та застосування Python, 1 частина

За шість попередніх розділів у жодному не було розказано про оператори та часто використовувані функції та класи стандартної бібліотеки, тому що я вирішив виділити на це окремий розділ. Тут Ви навчитеся практичним застосуванням мови Python для обчислення повсякденних задач та автоматизації процесів.

Python — це також скриптова мова програмування. Це означає, що за допомогою неї можна автоматизувати виконання деяких процесів, які б доводилося робити вручну. Найпростіший приклад: якщо часто виникає необхідність рахувати площу кругів, навіщо кожен раз вручну множити за формулою числа, якщо можна написати цю формулу у Python і просто вводити радіус кругів, щоб отримувати результати? ;)

Математика

Одним із базових застосувань програмування, задля якого й винайшли комп’ютери є обчислення математичних задач різної складності. У Пайтоні існують 7 базових операторів для арифметичних дій над цілими та дійсними числами. Присвоєння, що доповнює (augmented assignment) існує і тут: +=, /= тощо; а от інкрементів та декрементів немає.

Математика Python Опис
a+b a+b Додавання чисел
a-b a-b Віднімання чисел
a×b a*b Множення чисел
a÷b a/b Ділення чисел
a mod b a%b Остача від ділення
aᵇ a**b Піднесення до степеня
⌊a÷b⌋ a//b Цілочисельне ділення

Цілочисельне ділення при діленні двох чисел відкидає дробову частину і залишає лише ціле число: 20 // 3 == 6 бо ⅔ відкидаються. Окрім того, у мові є деякі вбудовані функції, які одразу можна використовувати:

  • min(<числа>) — мінімальне значення серез чисел; min(5, 10, 25) # 5
  • max(<числа>) — максимальне значення серез чисел; max(5, 10, 25) # 25
  • abs(<число>) — абсолютне значення, тобто модуль числа; abs(-7.2) # 7.2
  • pow(a, b) — аналогічно до a**b

І це не все: стандартна бібліотека включає модуль (набір функцій, класів, констант) math. Підключити цей модуль можна інструкцією import math. Модулі схожі на простори імен у C++ або ж пакети у Java. Цей модуль містить багато функцій та констант; основні наведені нижче.

  • sin(a), cos(a), tan(a) — синус, косинус, тангенс числа у радіанах; котангенс можна знайти як 1/math.tan(a)
  • asin(a), acos(a), atan(a) — арксинус, арккосинус, арктангенс числа у радіанах
  • atan2(y, x) — арктангенс y/x у радіанах; корисно для кута між векторами (або прямими)
  • round(a, [знаків після коми]), ceil(a), floor(a) — округлення, округлення вгору, округлення вниз
  • degrees(a), radians(a) — перевести у градуси з радіанів, навпаки
  • comb(n, k), perm(n, k) — комбінацій вибору k з n предметів, перестановок
  • factorial(a) — факторіал числа
  • sqrt(a) — квадратний корінь числа
  • log(a, [основа]), log10(a), log2(a) — логарифм натуральний або за основою, за основою 10, за основою 2

  • e — число Ойлера
  • inf — “нескінченність”
  • nan — “не число”
  • pi — число Пі
  • tau — 2 × число Пі (число Тау)

У випадку піключення за допомогою import math необхідно писати перед кожною функцією і константою math.. Існує й інший спосіб: імпортувати необхідні функції і константи у поточну область видимості інструкцією видом from math import <перелік>, тоді писати модуль не потрібно. * імпортує все, що є у модулі, однак це не рекомендується робити для уникнення засмічення програми не використовуваними речами. Нижче показані всі три варіанти коду з використанням модуля math.

import math
print( math.sqrt(9) )
from math import sqrt
print( sqrt(9) )
from math import *
print( sqrt(9) )

Логіка

Побітові оператори у більшості мов однакові, і Пайтон — не виключення: &, |, ^, ~, <<, >>. А от щодо логічних, то вони запусуються словами.

Java Python Опис
a && b a and b “І”
a || b a or b “АБО”
!a not a “НЕ”

Булеві значення у Python можна вважати числовими, як у C.

True == 1 # True
False == 0 # True
True + False / True # 1 + 0 / 1 == 1(.0)

Текст

Якщо у Вас виникло якось питання, чому рядки можна писати у одинарних і у подвійних лапках, а не лише в одному єдиному стилі, то моя відповідь: не знаю. Історично так склалося, що Python розцінює обидва стилі однаково на рівні семантики. Тим не менш, є загальні рекомендації писати здебільшого у подвійних лапках задля можливості використання апострофів. Одинарні лапки корисні для односимвольних рядків.

Окрім таких, ще є потрійні лапки (""" або '''), які використовують для багаторядкових рядків (звучить дивно, згоден), коментарів, документування коду. Також є особливий вид “сирих рядків” (raw strings), які виглядають так: r'рядок' або r"рядок". Вони сприймають усі символи буквально, тобто print( r'\n' ) виведе не новий рядок, а \n як є.

Звичайні рядки підтримують такі екранування — особливе сприйняття та заміну деяких послідовностей символів:

  • \' — одинарні лапки, наприклад: 'слово з а\'острофом'
  • \" — подвійні лапки
  • \\ — сам символ \
  • \0 — null-символ
  • \alert — програвання звуку “біп” або “дінь”, якщо підтримується; здебільшого не працює на сучасних пристроях
  • \backspace — стирає попередній символ
  • \form feed — нова сторінка
  • \new line — новий рядок
  • \return carriage — повернення на початок рядка
  • \tab — відступ
  • \vertical tab — вертикальний відступ; не всюди працює
  • \<число> — символ у вісімковій системі числення
  • \x<число> — символ у шістнадцятковій системі числення
  • \u<число> — Unicode символ (максимум FFFF)

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

Оператор Опис Приклад
a+b Конкатенація (з’єднання) "Hello " + "world!"
a*n Повторення — копіює рядок n разів "Spam" * 3
a[n] Символ на n-ій позиції "Python"[2]
a[n1:n2] Зріз — отримати підрядок з n1-го до n2-го символів "Ivypool"[0:3]
b in a Перевірка, чи є символ чи підрядок у рядку "snow" in "snowflake"
b not in a Перевірка, чи немає підрядка у рядку 'w' not in "star"
a % f Форматування див. нижче

Обов’язково перегляньте другу частину для продовження інформації про текст!


Copyleft 🄯 2020–2024 Михайло Стецюк <yaBobJonez@gmail.com>.
Сайт має ліцензію Creative Commons License.
Дякую рідній школі та вчителям!