Модульні уроки (3/4)
Числа і математичний модуль
Python розрізняє два основні типи чисел: int (довільної точності
цілі числа — без переповнення) і float (64-розрядне число з плаваючою комою, подвійне
точність).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereАрифметичні оператори
| Op | Значення | Приклад | Результат |
|---|---|---|---|
+ | додаток | 2 + 3 | 5 |
- | віднімання | 5 - 2 | 3 |
* | продукт | 4 * 3 | 12 |
/ | справжній поділ | 10 / 4 | 2.5 |
// | ціле ділення | 10 // 4 | 2 |
% | по модулю (залишок) | 10 % 3 | 1 |
** | потужність | 2 ** 10 | 1024 |
Попередження: / завжди повертає float, навіть із двома цілими числами (10 / 2
повертає 5.0, а не 5). Для цілочисельного ділення використовуйте //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Числові вбудовані
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
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.
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 стандартної бібліотеки.
Спробуйте
Якщо `seconds = 3725`, обчисліть `hours`, `minutes`, `remaining_seconds`, використовуючи // і %. Обчисліть кортеж `(години, хвилини, залишкові_секунди)`.
Показати підказку
// виконує цілочисельне ділення, % залишок.
Рішення доступне після 3 спроб
Повторна вправа
Враховуючи `radius = 5`, обчисліть площу кола в `area` за допомогою math.pi. Оцініть "площу", округлену до 2 знаків після коми, за допомогою округлення.
Показати підказку
math.pi * радіус ** 2
Рішення доступне після 3 спроб
Додатковий виклик
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 спроб