Арифметика в python

Приоритет операций

  1. Cтепень
  2. Деление / умножение
  3. Сложение / вычитание

Нюансы при возведении в степень

2 ** 3 ** 4 = ?

Сначала выполнится последнее возведение в степень, а уже потом первое. То есть:

  1. 3 ** 4 = 81
  2. 2 ** 81 = <Много>

Деление нацело и с остатком

Целочисленное деление

/ - деление с плавающей точкой
// - целочисленное деление
% - вычисление остатка от деления

>>> 5 / 2
2.5
>>> 5 // 2
2
>>> 5 % 2
1

Подсчет кол-ва цифр в числе

C помощью % 10 можно получить последнюю цифру числа, а с помощью // 10 отбрасывать ее. Так и можно посчитать кол-во цифр в числе.

def count_numbers(num):
    count = 0
 
    while num > 0:
	    count += 1
        num //= 10
 
    return count

Получение частного и остатка одновременно

>>> divmod(9, 5)
(1, 4)

divmod() - функция, которая, in this case, приняла int числа 9 и 5, а вернула кортеж из двух элементов.


Сокращенные операторы

ВыражениеКомбинированный оператор присваиванияСокращённое выражение
a = a + 2+=a += 2
b = b - 34-=b -= 34
c = c * 7*=c *= 7
d = d / 3/=d /= 3
e = e // 10//=e //= 10
f = f % 4%=f %= 4
g = g \*\* 4**=g **= 4

Сокращённые операторы нельзя использовать с undefined (не заданными) переменными. Нельзя написать num += 2, если переменной num ещё нет, ведь питон не шарит, к чему добавлять +2.


divide by zero (0)

>>> 5 / 0
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    5 / 0
     ~~^~~
ZeroDivisionError: division by zero
>>> 7 // 0
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    7 // 0
     ~~^^~~
ZeroDivisionError: integer division or modulo by zero

Соус: Книга “Простой Python Глава 2. “Числа

python