Основы арифметики в языке Python

Раздел: Основы Python -> Арифметика

Основные арифметические операторы

В Python доступны все базовые арифметические действия: сложение, вычитание, умножение, деление, целочисленное деление, взятие остатка и возведение в степень. Ниже приведено основное решение – использование встроенных операторов.

Самый прямой способ выполнить арифметическую операцию – применить соответствующий оператор к двум операндам. Примеры:


# Сложение
print(10 + 3)  # 13
# Вычитание
print(10 - 3)  # 7
# Умножение
print(10 * 3)  # 30
# Деление (результат всегда float)
print(10 / 3)  # 3.3333333333333335
# Целочисленное деление
print(10 // 3) # 3
# Остаток от деления
print(10 % 3)  # 1
# Возведение в степень
print(10 ** 3) # 1000

найти сумму введенных чисел python (нахождение суммы введенных чисел в python)

Обратите внимание: оператор / всегда возвращает число с плавающей точкой, даже если деление нацело. Для получения целой части частного используйте //, а для остатка – %.

Типичные ошибки:

  • Деление на ноль (ZeroDivisionError). Всегда проверяйте делитель перед выполнением операции.
  • Неявное преобразование типов: при смешивании целых и дробных чисел Python возвращает float, что может привести к потере точности. Для контроля используйте модуль decimal.
  • Приоритет операций: по умолчанию ** имеет наивысший приоритет, затем *, /, //, %, и потом +, -. Для явного указания порядка используйте скобки.

Как получить одновременно целую часть и остаток от деления?

Функция divmod(a, b) возвращает кортеж (a // b, a % b). Это удобно, когда оба значения нужны сразу. Пример:


result = divmod(10, 3)
print(result)  # (3, 1)
print('Целая часть:', result[0], 'Остаток:', result[1])

факториал числа n python (вычисление факториала числа n в python)

Проблема: функция работает только с числами, поддерживающими деление и остаток (int, float). Для отрицательных чисел результат может отличаться от ожидаемого, так как Python округляет частное вниз. Всегда проверяйте поведение для отрицательных операндов.

Как выполнить арифметические действия с высокой точностью?

Модуль decimal позволяет задавать точность вычислений и избегать ошибок округления, характерных для float. Пример:


from decimal import Decimal, getcontext
getcontext().prec = 40  # устанавливаем точность до 40 знаков
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)  # 0.3, а не 0.30000000000000004

арифметические действия python (арифметические действия в python)

Важно: создавать Decimal лучше из строк, чтобы избежать неточности при передаче float. Также операции с Decimal медленнее, чем с встроенными типами.

Как использовать функции из модуля operator для арифметики?

Модуль operator предоставляет функциональные аналоги операторов: add, sub, mul, truediv, floordiv, mod, pow. Это пригодится при передаче операции как аргумента функции (например, в reduce). Пример:


from operator import add, mul
print(add(5, 3))    # 8
print(mul(5, 3))    # 15

Использование operator избыточно для простых выражений, но удобно в функциональном программировании. Ошибки те же, что и у обычных операторов (деление на ноль и т.д.).

- Python возвести число в квадрат (возведение числа в квадрат в python)
- Python отрицательное число в положительное (преобразование отрицательного числа в положительное в python)

Расширенные примеры арифметических действий и их комбинаций.

Комбинированные операции с приоритетом

Пример

# Пример, демонстрирующий приоритет операций
x = 2 + 3 * 4 ** 2 // 5 - 6 % 3
print(x)  # 2 + 3 * 16 // 5 - 0 = 2 + 48 // 5 - 0 = 2 + 9 - 0 = 11
11

Используйте скобки, чтобы сделать порядок вычислений явным:

Пример

x = (2 + 3) * (4 ** 2) // (5 - 6) % 3
print(x)  # (5 * 16) // (-1) % 3 = 80 // (-1) % 3 = (-80) % 3 = 1 (в Python остаток всегда неотрицательный)
1

Работа с отрицательными числами в делении

Пример

print(-10 // 3)  # -4 (округляет вниз)
print(-10 % 3)   # 2 (остаток всегда неотрицательный 0 <= r < делителя)
print(10 // -3)  # -4
print(10 % -3)   # -2 (остаток сохраняет знак делителя? На самом деле r = a - b*(a//b), для -3 это -2)
-4
2
-4
-2

Использование math.fsum для точного суммирования float

Пример

import math
nums = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
print(sum(nums))          # 0.9999999999999999
print(math.fsum(nums))   # 1.0
0.9999999999999999
1.0

Возведение в степень с помощью pow и math.pow

Пример

# Встроенная функция pow с тремя аргументами (модуль)
print(pow(2, 10))       # 1024
print(pow(2, 10, 1000)) # 24 (2^10 % 1000)

# math.pow всегда возвращает float
import math
print(math.pow(2, 10))  # 1024.0
1024
24
1024.0

Арифметика с комплексными числами

Пример

a = 3 + 4j
b = 1 - 2j
print(a + b)  # (4+2j)
print(a * b)  # (11-2j)
print(abs(a)) # 5.0 (модуль комплексного числа)
(4+2j)
(11-2j)
5.0

Округление после арифметических операций

Пример

value = 10 / 3
print(round(value, 2))    # 3.33
print(round(value, 4))    # 3.3333
print(round(2.5))         # 2 (банковское округление – к чётному)
print(round(3.5))         # 4
3.33
3.3333
2
4

Обратите внимание: функция round использует банковское округление (round half to even), что может быть неожиданным.

Арифметические действия в Python - comments

En
арифметические действия python (python)