Python’s Математический модуль Предоставляет вам некоторые из самых популярных математических функций, которые вы можете использовать. В этой статье я возьму вас через самые распространенные. Вы также можете посмотреть следующее учебное видео, в котором я проверю вас через статью:
Математика
Модуль является частью стандартной библиотеки Python, и она всегда доступна с каждым Установка Python Отказ Тем не менее, вы должны импортировать его, прежде чем вы сможете начать использовать функции, которые он содержит.
import math
Теперь каждая функция в Математика
Библиотека доступна по телефону math.function_name ()
Отказ Если вы хотите импортировать определенные функции, используйте стандарт Из Math Import Function_Name
синтаксис.
Python Math Ploe.
math.floor (x)
Функция принимает один аргумент х
– либо плавать или int – и возвращает наибольшее целое число, меньше или равно х
Отказ
>>> math.floor(3.9845794) 3 >>> math.floor(9673.0001) 9673 >>> math.floor(12) 12
Наибольшие номера меньше или равно 3,9845794 и 9673 0001 и 9673 0001, составляют 3 и 9673 соответственно. С 12 – целое число, результат math.floor (12)
это 12 сам.
>>> math.floor(-10.5) -11
Пол -10,5 составляет -11. Иногда это может быть запутано, но помните, что -11 <-10 <-9 <… <-1 <0.
Если вы создаете пользовательский A Пользовательский класс Python , вы можете заставить их работать с math.floor ()
Определяя __floor __ ()
метод.
Попробуй сам: Запустите следующую интерактивную оболочку Python.
Упражнение : Можете ли вы выяснить вывод, прежде чем запустить его?
Python Math. Цероваться
math.cheil (x)
Функция принимает один аргумент х
– либо поплавок, либо int – и возвращает наименьшее целое число, больше или равно х
Отказ
>>> math.ceil(3.9845794) 4 >>> math.ceil(9673.0001) 9674 >>> math.ceil(12) 12
Наименьшие числа, превышающие или равно 3,9845794 и 9673.0001, составляют 4 и 9674 соответственно. С 12 – целое число, результат Math.Ceil (12)
это 12 сам.
>>> math.ceil(-10.5) -10
Потолок -10,5 –10. Ваш инстинкт, что 10 <10.5 верно, когда 10 является положительным числом. Но наоборот верно для отрицательных чисел, а так -10,5 <-10.
Если вы создаете пользовательский пользовательский класс Python, вы можете заставить их работать с Math.Ceil ()
Определяя __ceil __ ()
метод.
Математические операторы Python
Стандартные математические операторы не определены в математическом модуле, а скорее в синтаксисе самого Python.
Чтобы добавить два номера вместе, используйте +
оператор.
>>> 5 + 10 15
Вычте два числа, используйте -
оператор.
>>> 5 - 10 -5
Умножить два числа вместе, используйте *
оператор.
>>> 5 * 10 50
Разделить два числа, используйте /
оператор.
>>> 5 / 10 0.5
Обратите внимание, что это всегда Возвращает поплавок, даже если результат является целым числом.
>>> 10 / 5 2.0
Помните, что если вы возьмете два случайных числа и разделите их, очень маловероятно, что они прекрасно разделяют друг друга, поэтому логично, что все разделение с /
Возвращает поплавок.
Чтобы поднять номер к определенной власти, используйте **
оператор.
>>> 5 ** 10 9765625
Это ‘ пять до степени десяти «И вы пишете это в том же порядке, вы бы написали это вручную.
Тогда есть некоторые другие операторы, используемые реже в математике, но невероятно полезны для информатики и кодирования: модуля и напольное разделение.
Оператор модуля возвращает остаток влево, когда один номер разделен на другой. Вы выполняете этот расчет с %
Оператор в Python.
>>> 13 % 3 1
Вы должны прочитать вышеуказанную строку как « 13 модуль 3 «И результат 1. Это связано с тем, что 3 входит в 13 четыре раза (3 x) и общая разница между 13 и 12 является: 13 -.
Еще один способ подумать об этом, если вы пишете 13/3 в качестве сложной фракции, вы получаете 4 + 1/3. Глядя на фракцию, оставленную над – 1/3 – возьмите числитель (верхняя часть), чтобы получить конечный результат: 1.
Если вы делаете многочисленные расчеты «Modulo N», Установить возможных результатов варьируется от 0 до и в том числе N-1
Отказ Таким образом, для 3 диапазон возможных результатов составляет 0, 1 и 2.
Вот еще несколько примеров:
>>> 14 % 3 2 >>> 15 % 3 0 >>> 16 % 3 1
Вы можете увидеть, что 15% 3
0. Этот результат имеет дело для всех кратных 3.
Один невероятный полезный способ использовать оператор модуля в для
петли, если вы хотите сделать что-то каждую итерацию.
for i in range(10): if i % 4 == 0: print('Divisible by 4!!!') else: print('Not divisible by 4 :(')
Divisible by 4!!! Not divisible by 4 :( Not divisible by 4 :( Not divisible by 4 :( Divisible by 4!!! Not divisible by 4 :( Not divisible by 4 :( Not divisible by 4 :( Divisible by 4!!! Not divisible by 4 :(
Здесь я использовал оператор модуля для печати Добримую на 4 !!!
каждый раз Я
был делится на 4 – то есть, когда Я% 4
– и распечатать Не делится на 4:(
во всех остальных случаях.
Окончательный встроенный оператор связан с модулем. Он выполняет разделение пола и написано как //
Отказ Как предполагает имя, разделение пола совпадает с обычным делением, но всегда раунд результат до ближайшего целого числа.
Если вы пишете 13/3
Как сложная фракция, вы получаете 4 + 1/3
Отказ Дивизия пола возвращает целую номерную часть этой фракции, 4
в таком случае.
>>> 13 // 3 4 >>> 13 / 3 4.333333333333333
Здесь я рассчитал «Тринадцать этаж три» И это возвращает 4. Результат Тринадцать делится на три ‘ это 4.3333, и если вы обретете это, вы получаете 4.
Еще один способ думать об этом, если вы пишете 13/3
Как сложная фракция, вы получаете 4 + 1/3
Отказ Дивизия пола возвращает целую номерную часть этой фракции, 4
в таком случае.
Вот еще несколько примеров:
>>> 14 // 3 4 >>> 15 // 3 5 >>> 16 // 3 5
Обратите внимание, что все вышеупомянутые примеры int int inter, разделенные на Ints. В каждом случае Python возвращает int. Но если один из чисел – это поплавок, Python возвращает поплавок.
>>> 14.0 // 3 4.0 >>> 14 // 3.0 4.0
Этот результат отличается от обычного разделения /
который всегда возвращает поплавок.
Вы можете выполнить разделение пола на любые два номера, но вы можете удивительно получить результаты, если вы добавляете десятичные места.
# No difference to normal >>> 14.999 // 3 4.0 # Returns 3.0, not 4.0! >>> 14 // 3.999 3.0 # Now we see why >>> 14 / 3.999 3.500875218804701
Когда вы запустите 14//3.999
результат это 3.0
потому что 14/3.999
это 3.508 ...
и пол 3.508 ...
это 3
Отказ
Полное разделение для отрицательных чисел работает так же.
>>> -14 / 3 -4.666666666666667 >>> -14 // 3 -5
Напомним, что полное разделение занимает ниже номер и что -5 <-4
Отказ Таким образом, результат разделения пола для отрицательных чисел не совпадает с добавлением минусных знаков к результату отдела пола для положительных чисел.
Попробуй сам: Запустите следующую интерактивную оболочку Python.
Упражнение : Какая линия не производит выходное целое число 42?
Ошибка домена математики Python
Вы можете столкнуться с специальными ValueError
При работе с математическим модулем Python.
ValueError: math domain error
Python поднимает эту ошибку, когда вы пытаетесь сделать то, что не математически возможно или математически определяется.
import numpy as np import matplotlib.pyplot as plt # Plotting y = log(x) fig, ax = plt.subplots() ax.set(xlim=(-5, 20), ylim=(-4, 4), title='log(x)', ylabel='y', xlabel='x') x = np.linspace(-10, 20, num=1000) y = np.log(x) plt.plot(x, y)
Это график log (x)
Отказ Не волнуйтесь, если вы не понимаете код, что важнее, является следующим точком. Вы можете видеть, что журнал (X) имеет тенденцию к отрицательной бесконечности, когда X имеет тенденцию к 0. Таким образом, математически бессмысленно рассчитать журнал отрицательного числа. Если вы попытаетесь сделать это, Python поднимает ошибку математической домена.
>>> math.log(-10) Traceback (most recent call last): File "", line 1, in ValueError: math domain error
Python Math Round
Округление сложнее, чем вы могли ожидать. Неправильно округлые поплавки приводят к катастрофическим последствиям. Ванкувер фондовая биржа использовал чрезвычайно упрощенный алгоритм округления при торговле акциями. Менее чем через два года алгоритм привел к цене фондовой биржи половина из того, что это должно было быть!
раунд ()
Функция не является частью математического модуля, а скорее встроенная функция, которую вы можете вообще доступ.
Это принимает два аргумента:
round(number[, ndigits])
Номер
это int или float, а ndigits
Является ли точность округления, которую вы хотите после десятичная точка. Квадратные скобки вокруг ndigits
Узнайте, что это необязательный аргумент. Если вы опускаете ndigits
, Python Rounds Номер
к ближайшему целым числу.
# Closest integer >>> round(10.237) 10 # One decimal place >>> round(10.237, 1) 10.2 # Two decimal places >>> round(10.237, 2) 10.24
Здесь вы можете увидеть это раунд ()
работает как вы ожидаете.
Во-первых, я хочу раунд 10,237 до целого числа. Итак, давайте посмотрим на первое значение после десятичного места и раунд вниз, если он меньше 5 и выше, если он превышает 5. Первое значение 2, и поэтому вы раудителя, чтобы получить 10. Для следующего примера, раунд 10,237 до одного десятичного времени. Посмотрите на второе десятичное десятичное место – 3 – и настолько вокруг его, чтобы получить 10,2. Наконец, раунд 10,237 до двух десятичных знаков, глядя на третье десятичное десятичное место – 7 – и округление, чтобы получить 10,24.
Этот алгоритм работает как ожидалось; Тем не менее, это не так просто. Давайте посмотрим на округление 1,5 и 2,5.
>>> round(1.5) 2
Это раунды до 2, как и ожидалось.
>>> round(2.5) 2
Но это также раунды до 2! Что происходит?
раунд ()
Функция применяет тип округления, называемого «округлой половиной до даже». Это означает, что в случае галстука, Python раунды до ближайшего четного числа.
Математическая логика опирается, объясняется здесь , но, короче говоря, причина, по которой Python делает это, чтобы сохранить среднее значение чисел. Если все связи округляются (как нас преподают в школе), то если вы округлите Коллекция Из чисел среднее количество закругленных чисел будет больше, чем среднее значение фактической коллекции.
Python предполагает, что около половины будет нечетным для случайной коллекции чисел, а половина будет даже. На практике это верно в большинстве случаев. Тем не менее, есть больше Математически строгие методы Вы можете использовать в экстремальных обстоятельствах.
Обратите внимание, что арифметика с плавающей точкой имеет некоторые Присущие проблемы это не может быть решено. К счастью, это встроено во все Языки программирования , в основном потому, что компьютеры представляют Поплавки как двоичные номера Отказ Некоторые номера, которые имеют конечные представления с плавающей точкой – такие как 0,1 – имеют бесконечный бинарный Представления – 0,0001100110011 … – и наоборот. Таким образом, раунд ()
Функция не идеальна.
# Expected 2.68 but got 2.67 >>> round(2.675, 2) 2.67
Из того, что я сказал выше, этот пример должен вернуться 2,68, как это четное число. Однако он возвращает 2,67. Этот результат не ошибка и является известное свойство функции. Для подавляющего большинства случаев раунд ()
Работает, как я описал выше, но вы должны знать, что это не идеально. Если вы хотите что-то более точное, используйте Десятичный модуль Отказ
Python Math Pi.
Математический модуль включает некоторые математические константы, один из которых является π (PI).
>>> math.pi 3.141592653589793
Это соотношение окружности окружности до его диаметра и составляет 3,141592653589793-15 десятичных знаков. Если вы собираетесь использовать эту константу много, я рекомендую импортировать его отдельно, чтобы сохранить вы набрать математика
Каждый раз, когда вы хотите использовать его.
>>> from math import pi >>> pi 3.141592653589793
Python Math SQRT.
Чтобы рассчитать квадратный корень числа, используйте math.sqrt (n)
функция.
>>> math.sqrt(2) 1.4142135623730951 >>> math.sqrt(16) 4.0
Обратите внимание, что это всегда возвращает поплавок. Даже если вы проходите INT и Python, могут выразить результат в качестве Int, он всегда возвращает поплавок. Эта функциональность аналогична оператору разделения и делает логический смысл; Подавляющее большинство раз вы рассчитываете квадратный корень, он не вернет целое число.
Как на Python 3.8, есть также функция math.isqrt (n)
который возвращает целочисленный квадратный корень для некоторого целого числа N
Отказ Этот результат вы получаете, так же, как применение math.sqrt (n)
а потом math.floor ()
к результату.
# Only works with Python 3.8 >>> math.isqrt(2) 1 >>> math.isqrt(16) 4
Если вы проходите цифры, которые имеют точные квадратные корни, вы получаете аналогичный результат на math.sqrt ()
, но результат всегда целое число.
>>> math.isqrt(16.0) Traceback (most recent call last): File "", line 1, in TypeError: 'float' object cannot be interpreted as an integer
Вы не можете пройти поплавок.
>>> math.isqrt(17) 4 >>> math.floor(math.sqrt(17)) 4
Функция math.isqrt (n)
такой же, как math.floor (math.sqrt (n))
Если N
целое число,
Python Math Abs.
ABS ()
Функция – это встроенная функция, которая возвращает абсолютное значение номера. Функция принимает целые числа, поплавки и комплексные числа в качестве ввода.
Если вы пройдете ABS ()
целое число или плавание, N
, он возвращает неотрицательное значение N
и сохраняет его тип. Другими словами, если вы проходите целое число, ABS ()
Возвращает целое число, и если вы проходите поплавок, он возвращает поплавок.
# Int returns int >>> abs(20) 20 # Float returns float >>> abs(20.0) 20.0 >>> abs(-20.0) 20.0
Первый пример возвращает INT, второй возвращает поплавок, а окончательный пример возвращает поплавок и демонстрирует, что ABS ()
всегда возвращает положительное число.
Комплексные числа состоят из двух частей и могут быть написаны как A + BJ
где А
и B
являются либо int, либо плавают. Абсолютное значение A + BJ
определяется математически, как Math.sqrt (A ** 2 + B ** 2)
Отказ Таким образом, результат всегда положительный и всегда поплавок (поскольку приема квадратного корня всегда возвращает поплавок).
>>> abs(3 + 4j) 5.0 >>> math.sqrt(3**2 + 4**2) 5.0
Здесь вы можете увидеть это ABS ()
всегда возвращает поплавок и что результат ABS (A. + Bj)
такой же, как Math.sqrt (A ** 2 + B ** 2)
Отказ
Математика Python Random
Для генерации случайных чисел необходимо использовать случайный модуль Python, а не математический модуль. Эта ссылка берет вас в статью, которую я написал все об этом.
Математические градусы Python
Важно, чтобы вы могли быстро переключаться между градусами и радианами, особенно если вы работаете с тригонометрическими функциями.
Допустим, у вас есть угол R
который в радианах, и вы хотите преобразовать его в градусы. Просто позвоните math.degrees (r)
Отказ
Давайте посмотрим на несколько распространенных примеров.
# You need to use pi a lot, so let's import it >>> from math import pi >>> math.degrees(pi) 180.0 >>> math.degrees(pi/4) 45.0 >>> math.degrees(2*pi) 360.0
Во-первых, я импортировал Пи
Так что я мог легко использовать его во всех функциях. Затем я рассчитал некоторые распространенные преобразования степени до радианов. Обратите внимание, что math.degrees ()
всегда возвращает поплавок. Этот результат ожидается в качестве подавляющего большинства времени, результат преобразования не является целым числом.
Обратите внимание, что, как всегда в случае арифметики с плавающей точкой, эта функция не идеальна.
>>> math.degrees(pi/3) 59.99999999999999
Это должно вернуть 60,0. Но обратите внимание, что с 0,999 … повторяющийся равен 1 , это не отрицательно не повлияет на ваши результаты.
Python математические радианы
Допустим, у вас есть угол D
в градусах, и вы хотите преобразовать его в радианы. Просто позвоните math.radians (d)
Отказ
Давайте посмотрим на несколько распространенных примеров.
>>> from math import pi >>> math.radians(180) 3.141592653589793 >>> math.radians(180) == pi True >>> math.radians(45) 0.7853981633974483 >>> math.radians(45) == pi/4 True
Нижняя сторона с преобразованием градусов в радианы заключается в том, что для людей гораздо сложнее читать. Итак, я добавил в операторы равенства потом, чтобы показать вам, что на 180 градусов, при преобразовании в радианы, представляют собой π и аналогично для 45 градусов и π/4.
Эта функция особенно имеет решающее значение, если вы хотите использовать любой из тригонометрических функций, поскольку они предполагают, что вы передаете угол в радианах.
Python Math Sin.
Чтобы рассчитать синус какого-либо угла R
, позвоните math.sin (r)
Отказ Обратите внимание, что функция предполагает, что R
в радианах.
>>> math.sin(0) 0 # Assumes angle is in radians! >>> math.sin(90) 0.8939966636005579 # Convert to radians >>> math.sin(math.radians(90)) 1.0 # Enter as radians >>> math.sin(pi/2) 1.0
Из математики средней школы мы знаем, что грех (90) .0
Если 90 находится в градусах. Но здесь я продемонстрирую, что вы не получаете 1.0, если вы вводите 90. Вместо этого ввод PI/2
и вы получаете ожидаемый результат. В качестве альтернативы вы можете использовать math.radians ()
Функция для преобразования любого угла в градусах до радианов.
Давайте посмотрим на результат для math.sin (pi)
Отказ
>>> math.sin(pi) 1.2246467991473532e-16
Опять же, из математики старшей школы, вы ожидаете, что результат будет 0,0, но, как часто бывает случай с арифметикой с плавающей точкой, это не так. Хотя мы знаем, что синус 0 и π – это одинаковое значение, к сожалению, он не отражается на выходе. Этот результат заключается в том, что π – это бесконечный десятичный, который не может быть полностью представлен в компьютере. Однако число настолько мала, что не должно делать огромное значение для ваших расчетов. Но если вам нужно это равно 0, есть Некоторые методы Вы можете попробовать, но я не буду обсуждать их в этой статье для краткости.
Наконец, обратите внимание, что все возвращаемые значения плавают, даже если Python может представлять их как целые числа.
Python Math COS.
Для расчета косина какого-либо угла R
, позвоните math.cos (r)
Отказ Обратите внимание, что функция предполагает, что R
в радианах.
>>> math.cos(0) 1.0 # Assumes angle is in radians >>> math.cos(180) -0.5984600690578581 # Convert to radians >>> math.cos(math.radians(180)) -1.0 # Enter angle in radians >>> math.cos(pi) -1.0
Из математики средней школы мы знаем, что COS (180) = -1.0
Если 180 находится в градусах. Однако тригонометрические функции ожидают, что угла находиться в радианах. Итак, вы должны либо преобразовать его в Radians, используя Math.radians (180)
функция или ввести фактическое значение радианов, которое является PI
в таком случае. Оба метода дают вам ответ -1.0, как ожидалось.
Давайте посмотрим на результат math.cos (pi/2)
Отказ
>>> math.cos(pi/2) 6.123233995736766e-17
Результат math.cos (pi/2)
Должно быть 0,0, но вместо этого это крошечное число, близкое к 0. Это связано с тем, что π – бесконечный десятичный, который не может быть полностью представлен в компьютере. Эта функциональность должна быть в порядке для большинства случаев. Если вы должны быть равны 0, посмотрите это Переполнение стека Ответ Для альтернативных методов вы можете использовать.
Python Math Tan.
Для расчета касательства какого-либо угла R
, позвоните math.tan (r)
Отказ Обратите внимание, что функция предполагает, что R
в радианах.
>>> math.tan(0) 0.0 >>> math.tan(pi/4) 0.9999999999999999 >>> math.tan(pi/2) 1.633123935319537e+16
Результаты для math.tan ()
похожи на эти для math.sin ()
и math.cos ()
Отказ Вы получаете результаты, которые вы ожидаете за 0.0, но после начнете в том числе PI
Ничто не именно то, что вы ожидаете. Например, Tan (PI/4)
1, но Python возвращает 0,999 ...
Отказ Это может не выглядеть одинаково, но, математически, они равный ). Результат Tan (PI/2)
должна быть положительная бесконечность, но вместо этого Python возвращает огромный номер. Этот результат приятно, так как он позволяет выполнять расчеты с math.tan ()
Не бросая нагрузки на ошибки все время.
Вывод
Там у вас есть; Теперь вы знаете, как использовать наиболее распространенные функции в встроенном Python Математика
Модуль!
Вы можете взять пол или потолок любого числа, используя math.floor ()
и Math.Ceil ()
Отказ Вы знаете все основные операторы, какие типы они возвращаются, и когда. Вы видели, что Python поднимает Ошибка математического домена
Если вы попытаетесь сделать что-то математически невозможно. И вы можете использовать некоторые важные функции и константы для научных вычислений, таких как Math.pi
, преобразование углов из градусов до радианов и используя наиболее распространенные тригонометрические функции – грех, COS и TAN.
Есть еще несколько функций, которые у меня не было возможности покрыть эту статью, такую как обратные и гиперболические тригонометрические функции. С вашими знаниями вы легко поймете и используете их, если вы быстро читаете документы.
Куда пойти отсюда?
Вы хотите, чтобы вы могли быть программистом на полный рабочий день, но не знаете, как начать?
Ознакомьтесь с чистым упаковочным величином, где Chris – Creator of Finxter.com – учит вас стать фрилансером Python в 60 дней или вернуть деньги!
https://tinyurl.com/become-a-python-freelancer
Неважно, если вы начинаете питон или Python Pro. Если вы не делаете шесть фигур/год с Python прямо сейчас, вы узнаете что-то из этого вебинара.
Это доказаны, методы NO-BS, которые получают ваши результаты быстро.
Этот вебинар не будет онлайн навсегда. Нажмите на ссылку ниже, прежде чем сиденья наполнится и научитесь стать фрилансером Python, гарантированно.
https://tinyurl.com/become-a-python-freelancer
Expert Writer & Content Creator – наука о науке и машине. – Я помогаю образовательным компаниям создавать привлечение в блоге и видеоконтентах преподавания данных науки для начинающих. В отличие от моих конкурентов, я узнаю новые концепции каждый день и так понимаю, что это нравится быть студентом. Мои статьи легко понять, эффективны и приятно читать. Мои видео достойны, участвуют и подробно. – Работать со мной, пожалуйста, обратитесь к Upwork https://tinyurl.com/hire-adam-murphy