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

Базовые математические операторы

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

Сложение в Python

a, b = 1, 2 # Используется "+" оператор: a + b # = 3 # Используется "+=" оператор для сложения и назначения: a += b # a = 3 (эквивалентно a = a + b) import operator # поддерживает 2 аргумента арифметических функций для примеров operator.add(a, b) # = 5 since a is set to 3 right before this line # Оператор "+ language-python">"first string " + "second string" >>>Out: 'first string second string' [1, 2, 3] + [4, 5, 6] # = [1, 2, 3, 4, 5, 6] >>>Out: [1, 2, 3, 4, 5, 6]

Вычитание в python

a, b = 1, 2 # для вычитания используется "-" оператор: b - a >>>Out: 1 import operator # поддерживает 2 аргумента арифметических функций operator.sub(b, a) >>>Out: 1 

Возможные комбинации (встроенные типы):

  • int и int (дает int )
  • int и float (дает float )
  • int и complex (дает complex )
  • float и float (дает float )
  • float и complex (дает complex )
  • complex и complex (дает complex )

умножение в python

 a, b = 2, 3 a * b >>>Out: 6 import operator operator.mul(a, b) >>>Out: 6

Возможные комбинации (встроенные типы):

  • int и int (дает int )
  • int и float (дает float )
  • int и complex (дает complex )
  • float и float (дает float )
  • float и complex (дает complex )
  • complex и complex (дает complex )
Читайте также:  Си шарп расширение файла

Примечание: * оператор также используется для повторной конкатенации строк, списков и кортежей:

 3 * 'ab' # = 'ababab' 3 *('a', 'b') # =('a', 'b', 'a', 'b', 'a', 'b') 

Деление

Python выполняет целочисленное деление, когда оба операнда являются целыми числами. Поведение операторов деления Python изменились с 2.x и 3.x Python.

В Python 2 результат оператора / зависит от типа числителя и знаменателя. a / b # = 1
a / c # = 1,5
d / b # = -2
b / a # = 0
d / e # = -1

Обратите внимание, что поскольку a и b являются int , то результат является int . Результат всегда округляется до нуля. Поскольку c является float, результатом a / c является float . Вы также можете использовать модуль оператора: оператор #. Модуль оператора предоставляет арифметические функции с двумя аргументами operator.div (a, b) # = 1 оператор .__ div __ (a, b) # = 1

Что делать, если вы хотите разделить поплавки:

 from __future__ import division # applies Python 3 style division to the entire module a / b # = 1.5 a // b # = 1 

Хорошо (если вы не хотите применять ко всему модулю):

 a / (b * 1.0) # = 1.5 1.0 * a / b # = 1.5 a / b * 1.0 # = 1.0 (careful with order of operations) from operator import truediv truediv(a, b) # = 1.5 

Не рекомендуется (может вызывать TypeError, например, если аргумент сложный):

 float(a) / b # = 1.5 a / float(b) # = 1.5 

Оператор «//» в Python 2 вызывает разделение по этажам независимо от типа. a // b # = 1 a // c # = 1.0

В Python 3, / оператор выполняет «истинные» разделения независимо от типа. // оператор выполняет вольные деление и поддерживает тип.

 a / b # = 1.5 e / b # = 5.0 a // b # = 1 a // c # = 1.0 import operator # the operator module provides 2-argument arithmetic functions operator.truediv(a, b) # = 1.5 operator.floordiv(a, b) # = 1 operator.floordiv(a, c) # = 1.0 

Возможные комбинации (встроенные типы):

  • int и int (дает int в Python 2 и float в Python 3)
  • int и float (дает float )
  • int и complex (дает complex )
  • float и float (дает float )
  • float и complex (дает complex )
  • complex и complex (дает complex )

См PEP 238 для получения дополнительной информации.

возведения

 a, b = 2, 3 (a ** b) # = 8 pow(a, b) # = 8 import math math.pow(a, b) # = 8.0 (always float; does not allow complex results) import operator operator.pow(a, b) # = 8 

Еще одно различия между встроенным pow и math.pow является то , что встроенный pow может принимать три аргумента:

 a, b, c = 2, 3, 2 pow(2, 3, 2) # 0, calculates (2 ** 3) % 2, but as per Python docs, # does so more efficiently 

Специальные функции

Функция math.sqrt(x) вычисляет квадратный корень из x .

 import math import cmath c = 4 math.sqrt(c) # = 2.0 (always float; does not allow complex results) cmath.sqrt(c) # = (2+0j) (always complex) 

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

 import math x = 8 math.pow(x, 1/3) # evaluates to 2.0 x**(1/3) # evaluates to 2.0 

Функция math.exp(x) вычисляет e ** x .

 math.exp(0) # 1.0 math.exp(1) # 2.718281828459045 (e) 

Функция math.expm1(x) вычисляет e ** x — 1 .Когда x мала, то это дает значительно лучшую точность , чем math.exp(x) — 1 .

 math.expm1(0) # 0.0 math.exp(1e-6) - 1 # 1.0000004999621837e-06 math.expm1(1e-6) # 1.0000005000001665e-06 # exact result # 1.000000500000166666708333341666. 

Логарифмы

По умолчанию math.log функция вычисляет логарифм числа, по основанию е. Вы можете при желании указать базу в качестве второго аргумента.

 import math import cmath math.log(5) # = 1.6094379124341003 # optional base argument. Default is math.e math.log(5, math.e) # = 1.6094379124341003 cmath.log(5) # = (1.6094379124341003+0j) math.log(1000, 10) # 3.0 (always returns float) cmath.log(1000, 10) # (3+0j) 

Специальные вариации math.log функции существуют для различных оснований.

 # Logarithm base e - 1 (higher precision for low values) math.log1p(5) # = 1.791759469228055 # Logarithm base 2 math.log2(8) # = 3.0 # Logarithm base 10 math.log10(100) # = 2.0 cmath.log10(100) # = (2+0j) 

Операции на месте

В приложениях обычно требуется такой код:

Для этих операций на месте есть эффективный ярлык:

Любой математический оператор может использоваться перед символом ‘=’для выполнения операции на месте:

  • -= декремент переменной в месте
  • += Приращение переменной в месте
  • *= Умножить переменную на месте
  • /= Разделить переменную на месте
  • //= пол разделить переменную на месте # Python 3
  • %= Возвращают модуль переменной вместо
  • **= поднять на мощность в месте

Другие в месте операторов существуют для поразрядных операторов ( ^ , | и т.д.)

Тригонометрические функции

 a, b = 1, 2 import math math.sin(a) # returns the sine of 'a' in radians # Out: 0.8414709848078965 math.cosh(b) # returns the inverse hyperbolic cosine of 'b' in radians # Out: 3.7621956910836314 math.atan(math.pi) # returns the arc tangent of 'pi' in radians # Out: 1.2626272556789115 math.hypot(a, b) # returns the Euclidean norm, same as math.sqrt(a*a + b*b) # Out: 2.23606797749979 

Обратите внимание , что math.hypot(x, y) также длина вектора (или евклидово расстояние) от начала координат (0, 0) до точки (x, y) .

Для вычисления евклидова расстояния между двумя точками (x1, y1) и (x2, y2) можно использовать math.hypot следующих

Для преобразования из радиана -> степеней и степеней -> радиан соответственно использовать math.degrees и math.radians

 math.degrees(a) # Out: 57.29577951308232 math.radians(57.29577951308232) # Out: 1.0 

модуль

Как и во многих других языках, Python использует % оператор для вычисления модуля.

Или с помощью operator модуля:

 import operator operator.mod(3 , 4) # 3 operator.mod(10 , 2) # 0 operator.mod(6 , 4) # 2 

Вы также можете использовать отрицательные числа.

Если вам необходимо найти результат целочисленного деления и модуля, вы можете использовать divmod функцию в качестве ярлыка:

quotient, remainder = divmod(9, 4) # quotient = 2, remainder = 1 as 4 * 2 + 1 == 9

Источник

Python. Урок 4. Арифметические операции

Follow us on Google Plus Follow us on rss

Язык Python, благодаря наличию огромного количества библиотек для решения разного рода вычислительных задач, сегодня является конкурентом таким пакетам как Matlab и Octave. Запущенный в интерактивном режиме, он, фактически, превращается в мощный калькулятор. В этом уроке речь пойдет об арифметических операциях, доступных в данном языке.

Арифметические операции будем изучать применительно к числам, причем работу с комплексными числами разберем отдельно. Также, кратко остановимся на битовых операциях, представлении чисел в разных системах исчисления и коснемся библиотеки math.

Как было сказано в предыдущем уроке, посвященном типами и модели данных Python, в этом языке существует три встроенных числовых типа данных:

Если в качестве операндов некоторого арифметического выражения используются только целые числа, то результат тоже будет целое число. Исключением является операция деления, результатом которой является вещественное число. При совместном использовании целочисленных и вещественных переменных, результат будет вещественным.

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

Все эксперименты будем производить в Python, запущенном в интерактивном режиме.

Складывать можно непосредственно сами числа…

либо переменные, но они должны предварительно быть проинициализированы.

Результат операции сложения можно присвоить другой переменной…

>>> a = 3 >>> b = 2 >>> c = a + b >>> print(c) 5 

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

>>> a = 3 >>> b = 2 >>> a = a + b >>> print(a) 5 
>>> a = 3 >>> b = 2 >>> a += b >>> print(a) 5 

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

>>> 5 * 8 40 >>> a = 4 >>> a *= 10 >>> print(a) 40 
>>> 9 / 3 3.0 >>> a = 7 >>> b = 4 >>> a / b 1.75

Получение целой части от деления.

>>> 9 // 3 3 >>> a = 7 >>> b = 4 >>> a // b 1 

Получение остатка от деления.

>>> 9 % 5 4 >>> a = 7 >>> b = 4 >>> a % b 3 
>>> 5 ** 4 625 >>> a = 4 >>> b = 3 >>> a ** b 64

Работа с комплексными числами

Для создания комплексного числа можно использовать функцию complex(a, b), в которую, в качестве первого аргумента, передается действительная часть, в качестве второго – мнимая. Либо записать число в виде a + bj.

Рассмотрим несколько примеров.

Создание комплексного числа.

>>> z = 1 + 2j >>> print(z) (1+2j) >>> x = complex(3, 2) >>> print(x) (3+2j)

Комплексные числа можно складывать, вычитать, умножать, делить и возводить в степень.

>>> x + z (4+4j) >>> x - z (2+0j) >>> x * z (-1+8j) >>> x / z (1.4-0.8j) >>> x ** z (-1.1122722036363393-0.012635185355335208j) >>> x ** 3 (-9+46j)

У комплексного числа можно извлечь действительную и мнимую части.

>>> x = 3 + 2j >>> x.real 3.0 >>> x.imag 2.0 

Для получения комплексносопряженного число необходимо использовать метод conjugate().

Битовые операции

В Python доступны битовые операции, их можно производить над целыми числами.

Побитовое Исключающее ИЛИ (XOR).

Представление чисел в других системах счисления

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

Представление числа в шестнадцатеричной системе

Представление числа в восьмеричной системе

Представление числа в двоичной системе

Библиотека (модуль) math

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

Для работы с данным модулем его предварительно нужно импортировать.

Рассмотрим наиболее часто используемые функции.

Возвращает ближайшее целое число большее, чем x.

Возвращает абсолютное значение числа.

math.factorial(x)

Возвращает ближайшее целое число меньшее, чем x.

>>> math.exp(3) 20.085536923187668

math.log(x[, base])

По умолчанию вычисляет логарифм по основанию e, дополнительно можно указать основание логарифма.

>>> math.log2(8) 3.0 >>> math.log10(1000) 3.0 >>> math.log(5) 1.6094379124341003 >>> math.log(4, 8) 0.6666666666666667

Вычисляет значение x в степени y.

Тригонометрические функции, их мы оставим без примера.

И напоследок пару констант.

Помимо перечисленных, модуль math содержит ещё много различных функций, за более подробной информацией можете обратиться на официальный сайт.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

>>

Источник

Оцените статью