Чи

Числа у Python

78 вправ

Про концепцію Числа

У Python є три різні типи вбудованих чисел: цілі числа (int), числа з плаваючою комою (float) і комплексні числа (complex). Дроби (fractions.Fraction) і десяткові числа (decimal.Decimal) також можна імпортувати зі стандартної бібліотеки.

Цілі числа, зокрема записані у шістнадцятковій (hex()), вісімковій (oct()) і двійковій (bin()) формі без десяткових знаків, також належать до типу int:

# Ints are whole numbers.
>>> 1234
1234
>>> type(1234)
<class 'int'>

>>> -12
-12

Числа, що містять десяткову кому (з дробовою частиною або без неї), мають тип float:

>>> 3.45
3.45
>>> type(3.45)
<class 'float'>

Арифметика

Python повністю підтримує арифметику між цими різними типами чисел і перетворює вужчі числа відповідно до ширших, коли їх використовують із бінарними арифметичними операторами (+, -, *, /, // і %).

Усі числа (крім комплексних) підтримують усі арифметичні операції, які обчислюються згідно з пріоритетом операторів. Підтримку математичних функцій (окрім + і -) для комплексних чисел можна знайти в модулі cmath.

Додавання і віднімання

Оператори додавання і віднімання поводяться так само, як у звичайній математиці. Якщо один або кілька операндів є float, решту int також буде перетворено на float:

>>> 5 - 3
2
# The int is widened to a float here, and a float is returned.
>>> 3 + 4.0
7.0

Множення

Як і у випадку з додаванням і відніманням, множення перетворює вужчі числа відповідно до ширших:

>>> 3 * 2
6

>>> 3 * 2.0
6.0

Ділення

Ділення завжди повертає ints, навіть якщо в результаті виходить ціле число:

>>> 6/5
1.2

>>> 6/2
3.0

Ділення націло

Якщо потрібен результат типу int, можна скористатися діленням націло, щоб відкинути дробову частину. Ділення націло виконується за допомогою оператора //:

>>> 6//5
1

>>> 6//2
3

Остача

Оператор остачі (%) повертає остачу від ділення двох операндів:

# The result of % is zero here, because dividing 8 by 2 leaves no remainder
>>> 8 % 2
0

# The result of % is 2 here, because 3 only goes into 5 once, with 2 left over
>>> 5 % 3
2

Інший спосіб поглянути на 5 % 3:

>>> whole_part = int(5/3)
1

>>> decimal_part = 5/3 - whole_part
0.6666666666666667

>>> whole_remainder = decimal_part * 3
2.0

Піднесення до степеня

Піднесення до степеня виконується за допомогою оператора **:

>>> 2 ** 3
8

>>> 4 ** 0.5
2

Перетворення

Числа можна перетворювати з int на floats і з floats на int за допомогою вбудованих функцій int() і float():

>>> int(3.45)
3

>>> float(3)
3.0

Округлення

Python надає вбудовану функцію round(<number>, <decimal_places>), щоб округлити число з плаваючою комою до заданої кількості десяткових знаків. Якщо кількість десяткових знаків не вказано, число округлюється до найближчого цілого і функція поверне floats:

>>> round(3.1415926535, 2)
3.14

>>> round(3.1415926535)
3

Пріоритет і дужки

У Python можна використовувати дужки, щоб групувати вирази. Це корисно, коли потрібно змінити типовий порядок виконання операцій.

>>> 2 + 3 * 4
14

>>> (2 + 3) * 4
20

Python дотримується правила PEMDAS для пріоритету операторів. Це означає, що обчислення всередині () мають найвищий пріоритет, далі йдуть **, потім *, /, //, %, + і -:

>>> 2 + 3 - 4 * 4
-11

>>> (2 + 3 - 4) * 4
4

# In the following example, the `**` operator has the highest priority, then `*`, then `+`
# Meaning we first do 4 ** 4, then 3 * 256, then 2 + 768
>>> 2 + 3 * 4 ** 4
770

Точність і подання

Цілі числа в Python мають довільну точність: кількість цифр обмежує лише доступна памʼять хост-системи.

Числа з плаваючою комою зазвичай реалізовано типом double у C (точність 15 десяткових знаків), але їхнє подання залежить від хост-системи. Комплексні числа мають частини real і imaginary, і обидві подано числами з плаваючою комою.

Докладніше про проблеми й обмеження арифметики з плаваючою комою в різних мовах програмування можна прочитати на 0.30000000000000004.com і в The Python Tutorial.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Числа

Практика заблокована

Розблокуйте ще 3 вправи, щоб практикувати концепцію Числа