Перейти до основного вмісту
Модуль 4 · Урок 3 із 415/36 у курсі~10 min
Модульні уроки (3/4)

Числа і математичний модуль

Python розрізняє два основні типи чисел: int (довільної точності цілі числа — без переповнення) і float (64-розрядне число з плаваючою комою, подвійне точність).

Python
type(42)       # <class 'int'>
type(3.14)     # <class 'float'>
type(10 ** 100)  # <class 'int'>   — interi grandi a piacere

Арифметичні оператори

OpЗначенняПрикладРезультат
+додаток2 + 35
-віднімання5 - 23
*продукт4 * 312
/справжній поділ10 / 42.5
//ціле ділення10 // 42
%по модулю (залишок)10 % 31
**потужність2 ** 101024

Попередження: / завжди повертає float, навіть із двома цілими числами (10 / 2 повертає 5.0, а не 5). Для цілочисельного ділення використовуйте //.

Python
10 / 4    # 2.5
10 // 4   # 2
-7 // 2   # -4   (arrotonda verso il basso, non verso lo zero)

Числові вбудовані

Python
abs(-5)               # 5
min(3, 1, 2)          # 1
max([3, 1, 2])        # 3   (su iterabile)
round(3.7)            # 4
round(3.14159, 2)     # 3.14
sum([1, 2, 3])        # 6

Модуль math

Python
import math
math.pi               # 3.141592653589793
math.sqrt(16)         # 4.0
math.floor(3.9)       # 3   (verso meno infinito)
math.ceil(3.1)        # 4   (verso più infinito)
math.log(math.e)      # 1.0
math.gcd(12, 18)      # 6

Поплавковий камінь

Число з плаваючою точкою є двійковим наближенням: 0.1 + 0.2 не дорівнює точно 0.3.

Python
0.1 + 0.2           # 0.30000000000000004
0.1 + 0.2 == 0.3    # False !

Для безпечного порівняння використовуйте math.isclose(a, b) або, у фінансовому контексті, decimal модуль.

Точність і десятковий модуль

Числа з плаваючою точкою в Python реалізовані як числа з плаваючою комою подвійної точності (стандарт IEEE 754). Отже, такі обчислення, як 0.1 + 0.2, не дають точно 0.3, а скоріше 0.30000000000000004. Якщо вам потрібна абсолютна математична точність (наприклад, для фінансових програм), використовуйте модуль decimal стандартної бібліотеки.

Спробуйте

вправи#python.m4.l3.e1
Спроби: 0Завантаження…

Якщо `seconds = 3725`, обчисліть `hours`, `minutes`, `remaining_seconds`, використовуючи // і %. Обчисліть кортеж `(години, хвилини, залишкові_секунди)`.

Завантаження редактора…
Показати підказку

// виконує цілочисельне ділення, % залишок.

Рішення доступне після 3 спроб

Повторна вправа

вправи#python.m4.l3.e2
Спроби: 0Завантаження…

Враховуючи `radius = 5`, обчисліть площу кола в `area` за допомогою math.pi. Оцініть "площу", округлену до 2 знаків після коми, за допомогою округлення.

Завантаження редактора…
Показати підказку

math.pi * радіус ** 2

Рішення доступне після 3 спроб

Додатковий виклик

вправи#python.m4.l3.e3
Спроби: 0Завантаження…

Import the `math` module. Calculate the square root of `16` using `math.sqrt`, add the result to the rounded value of `3.74` (using `round()`), and store the final sum in `total_val`. Finally, evaluate the variable.

Завантаження редактора…
Показати підказку

math.sqrt(16) повертає 4,0. round(3.74) повертає 4. Підсумуйте їх і призначте total_val.

Рішення доступне після 3 спроб