Сообщить об ошибке.

Арифметические операции

Все числовые типы, кроме сложных, поддерживают следующие операции согласно их приоритетам выполнения:

  • x + y
    Результатом будет сумма чисел x и у
  • x - y
    Результатом будет разница чисел x и у
  • x * y
    Результатом будет произведение чисел x и у
  • x / y
    Результатом будет частное чисел x и у
  • x // y
    Результатом будет деление x / y с округлением результата до ближайшего целого в меньшую сторону. Операцию называют "целочисленным делением".
    Результирующее значение является целым целым числом, хотя тип результата не обязательно является int.
    Результат всегда округляется до минус бесконечности:
    1 // 2 равно 0,
    (-1) // 2 равно -1,
    1 // (-2) равно -1,
    (-1) // (-2) равно 0.
  • x % y
    Результатом будет остаток от деления чисел x / y.
  • -x
    Результатом будет отрицательное значение x.
  • +x
    В результате число x останется без изменений.
  • abs(x)
    Результатом будет абсолютное значение или величина x.
  • int(x)
    В результате число x преобразуется в целое число int.
    В качестве аргумента допускается использовать принятые числовые литералы включающие цифры от 0 до 9 или любой эквивалент Юникода.
    Преобразование вещественного числа в целое число может округляться или усекаться, как в C. Для четко определенных преобразований используйте math.floor() и math.ceil()
  • float(x)
    В результате число x преобразуется в число с плавающей точкой float.
    В качестве аргумента допускается использовать принятые числовые литералы включающие цифры от 0 до 9 или любой эквивалент Юникода.
    Функция также принимает строки 'nan' - не число и 'inf' - положительная или отрицательная бесконечность, с необязательным префиксом + или -.
  • complex(real, image)
    Результатом будет комплексное число с вещественной частью real, мнимой частью image.
    В качестве аргумента допускается использовать принятые числовые литералы включающие цифры от 0 до 9 или любой эквивалент Юникода.
  • c.conjugate()
    Результатом будет сопряженное комплексное число с.
  • divmod(x, y)
    Результатом будет пара (x // y, x % y).
  • pow(x, y)
    Результатом будет число x в степени у. Python определяет 0 ** 0 как равное 1, как это обычно бывает для языков программирования.
  • x ** y
    Результатом будет число x в степени у. Python определяет pow(0, 0) как равное 1, как это обычно бывает для языков программирования.

Внимание!. Комплексным числам (тип complex) недоступны операции: // - деление без остатка , % - остаток от деления, int(), float(), divmod().

Примеры использования:

Синтаксис арифметических выражений прост. Операторы +, -, * и / работают так же, как и в большинстве других языков программирования, круглые скобки () могут быть использованы для группировки выражений.

>>> 2 + 2
# 4
>>> 50 - 5*6
# 20
>>> (50 - 5*6) / 4
# 5.0

# деление всегда возвращает тип float
>>> 8/5
# 1.6

Целые числа, например 2, 4, 20 имеют тип int, числа с дробной частью, например 5.0, 1.6 имеют тип float.

Деление / всегда возвращает тип float (число с плавающей запятой). Для получения целой части числа, полученного в результате деления (floor division - округление результата до ближайшего целого в меньшую сторону) вы можете использовать оператор //, для расчета остатка вы можете использовать оператор %

# классическое деление
>>> 17 / 3 
# 5.666666666666667

# целочисленное деление
>>> 17 // 3  
# 5

# возвращает остаток от деления
>>> 17 % 3
# 2

С помощью Python можно использовать оператор ** для вычисления степеней

# 5 в квадрате
>>> 5 ** 2  
# 25

# 2 в степени 7
>>> 2 ** 7
# 128

Знак равенства = используется для присвоения значения переменной.

>>> width = 20
>>> height = 5 * 9
>>> width * height
# 900

Если переменная не определена, т. е. ей не присвоено значение, попытка использовать ее приведет к ошибке.

# переменная 'x' не определена
# ей не присвоено значение, а значит 
# Python ничего про нее не знает
>>> x
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# NameError: name 'x' is not defined

Существует полная поддержка операций с плавающей запятой, операции с числами смешанного типа преобразуют результат в число с плавающей точкой.

>>> 4 * 3.75 - 1
# 14.0

В интерактивном режиме последнее печатное выражение присваивается переменной _ - символ подчеркивания. Это означает, что при использовании Python в качестве калькулятора несколько проще продолжить вычисления, например:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
# 12.5625
>>> price + _
# 113.0625
>>> round(_, 2)
# 113.06

Переменная _ должна рассматриваться как доступная только для чтения. Не присваивайте ей явно значение, иначе вы создадите независимую локальную переменную с тем же именем, маскируя встроенную переменную с ее магическим поведением. Эта магическая переменная нередко используется в коде для скрытия неиспользуемых данных.

client = [(1, 'shopkeeper', 'Michael Palin'), 
          (2, 'client', 'John Cleese'), 
          (3, 'sketch', 'Cheese Shop Sketch')]
for num, _, name in client:
    print(num, name)

# 1 Michael Palin
# 2 John Cleese
# 3 Cheese Shop Sketch

Помимо int и float, Python поддерживает другие типы чисел, такие как Decimal и Fraction. Python также имеет встроенную поддержку комплексных complex чисел и использует суффикс j или J для обозначения мнимой части, например, 3+5j.