Встроенные математические функции python
Содержание:
- Getting to Know the Python math Module
- Логические операции с десятичным модулем
- Разработка игр
- Использование Python itertools.chain() для объединения итераций
- Operator Precedence
- Как отфильтровать элементы с помощью takewhile() и drop while()
- Библиотека Math в Python
- Практическая работа. Создание собственного модуля
- Python NumPy
- Фаза (аргумент)
- Стандартные модули
- Комбинации элементов между собой
- Арифметические операции
- Гиперболические функции
- Assignment Operators
- Графический интерфейс
- Создать комбинации с помощью combinations()
- cmath[править]
- The Math Module
- math[править]
- Целые числа (int)
- Заключение
Getting to Know the Python math Module
The Python module is an important feature designed to deal with mathematical operations. It comes packaged with the standard Python release and has been there from the beginning. Most of the module’s functions are thin wrappers around the C platform’s mathematical functions. Since its underlying functions are written in CPython, the module is efficient and conforms to the C standard.
The Python module offers you the ability to perform common and useful mathematical calculations within your application. Here are a few practical uses for the module:
- Calculating combinations and permutations using factorials
- Calculating the height of a pole using trigonometric functions
- Calculating radioactive decay using the exponential function
- Calculating the curve of a suspension bridge using hyperbolic functions
- Solving quadratic equations
- Simulating periodic functions, such as sound and light waves, using trigonometric functions
Since the module comes packaged with the Python release, you don’t have to install it separately. Using it is just a matter of importing the module:
>>>
Логические операции с десятичным модулем
Decimal содержит набор встроенных функций для выполнения логических операций с десятичными числами, таких как AND, OR, XOR и т. Д.
- Функция logical_and(): выполняет операцию логического И над двумя десятичными числами и возвращает результат.
- Функция logical_or(): выполняет операцию логического ИЛИ над двумя десятичными числами и возвращает результат.
- Функция logical_xor(): выполняет логическую операцию XOR над двумя десятичными числами и возвращает результат.
#Syntax for logical_and() function- decimal1.logical_and(decimal2) #Syntax for logical_or() function- decimal1.logical_or(decimal2) #Syntax for logical_xor() function- decimal1.logical_xor(decimal2)
Пример:
import decimal as d valx = d.Decimal(1001) valy = d.Decimal(1111) print("Value 1: ",valx) print("Value 2: ",valy) AND = valx.logical_and(valy) print("The logical AND value of the two decimals: ",AND) OR = valx.logical_or(valy) print("The logical OR value of the two decimals: ",OR) XOR = valx.logical_xor(valy) print("The logical XOR value of the two decimals: ",XOR)
Выход:
Value 1: 1001 Value 2: 1111 The logical AND value of the two decimals: 1001 The logical OR value of the two decimals: 1111 The logical XOR value of the two decimals: 110
Разработка игр
Python — это очень разносторонний язык,
позволяющий программистам создавать
самые разнообразные приложения, включая
видеоигры.
Pygame. Набор модулей для написания видеоигр. Pygame расширяет функционал прекрасной библиотеки SDL. Благодаря ему на Python можно создавать полнофункциональные игры и мультимедиа-программы.
Pyglet. Мощная, но при этом простая в использовании библиотека Python для разработки игр и других приложений с большим количеством визуальных эффектов для Windows, Mac OS X и Linux.
pyOpenGL. Этот модуль чаще других используется для обеспечения работы с библиотекой OpenGL и связанными с нею API в программах на Python.
Использование Python itertools.chain() для объединения итераций
Метод Python генерирует итератор из нескольких итераций.
Это просто связывает все итераторы вместе в одну последовательность и возвращает единственный итератор для этой объединенной последовательности.
Синтаксис этого метода следующий
iterator = itertools.chain(*sequence)
Давайте посмотрим на простой пример.
import itertools list1 = list2 = dict1 = {'site': 'AskPython', 'url': 'https://askpython.com'} # We can combine lists and dicts (iterables) into a single chain for item in itertools.chain(list1, list2, dict1): print(item)
Здесь мы используем итератор напрямую, перебирая его, используя
Выход
hello from AskPython 10 20 30 40 50 site url
Хотя мы получаем содержимое наших списков правильно, значения словаря не отображаются.
Чтобы исправить это, мы могли бы использовать для получения кортежа пар .
import itertools list1 = list2 = dict1 = {'site': 'AskPython', 'url': 'https://askpython.com'} # We can combine lists and dicts (iterables) into a single chain for item in itertools.chain(list1, list2, dict1.items()): print(item)
Выход
hello from AskPython 10 20 30 40 50 ('site', 'AskPython') ('url', 'https://askpython.com')
Теперь у нас также есть напечатанные значения.
Operator Precedence
In Python, as in mathematics, we need to keep in mind that operators will be evaluated in order of precedence, not from left to right or right to left.
If we look at the following expression:
We may read it left to right, but remember that multiplication will be done first, so if we call , we will receive the following value:
This is because evaluates to , and then we add to return as the final result.
If instead we would like to add the value to , then multiply that sum by , we can use parentheses just like we would in math:
One way to remember the order of operation is through the acronym PEMDAS:
Order | Letter | Stands for |
---|---|---|
1 | P | Parentheses |
2 | E | Exponent |
3 | M | Multiplication |
4 | D | Division |
5 | A | Addition |
6 | S | Subtraction |
You may be familiar with another acronym for the order of operations, such as BEDMAS or BODMAS. Whatever acronym works best for you, try to keep it in mind when performing math operations in Python so that the results that you expect are returned.
Как отфильтровать элементы с помощью takewhile() и drop while()
Мы можем использовать Python для фильтрации элементов последовательности, если условие . Если условие становится , фильтрация прекращается.
iterator = itertools.takewhile(condition, *sequence)
Вот простой пример, который фильтрует числа, если число положительное.
import itertools sequence = itertools.takewhile(lambda x: x > 0, ) for item in sequence: print(item)
Выход
1 2 3
Здесь последовательность остановилась после 3, поскольку следующий элемент равен -1.
Точно так же фильтрует элементы, пока условие имеет значение и возвращает все элементы после первого значения, отличного от false.
import itertools data = itertools.dropwhile(lambda x: x < 5, ) for item in data: print(item)
Выход
12 7 1 -5
Библиотека Math в Python
Math является самым базовым математическим модулем Python. Охватывает основные математические операции, такие как сумма, экспонента, модуль и так далее. Эта библиотека не используется при работе со сложными математическими операциями, такими как умножение матриц. Расчеты, выполняемые с помощью функций библиотеки math, также выполняются намного медленнее. Тем не менее, эта библиотека подходит для выполнения основных математических операций.
Пример: Вы можете найти экспоненту от 3, используя функцию библиотеки math следующим образом:
Python
from math import exp
exp(3) # Вычисление экспоненты
1 |
frommathimportexp exp(3)# Вычисление экспоненты |
Практическая работа. Создание собственного модуля
Программист на Python всегда может создать собственный модуль, чтобы использовать его в нескольких своих программах или даже предоставить в пользование всему миру. В качестве тренировки создадим модуль с функциями для вычисления площадей прямоугольника, треугольника и круга:
from math import pi, pow def rectangle(a, b): return round(a * b, 2) def triangle(a, h): return round(0.5 * a * h, 2) def circle(r): return round(pi * pow(r, 2), 2)
Здесь также иллюстрируется принцип, что один модуль может импортировать другие. В данном случае импортируются функции из модуля math.
Поместите данный код в отдельный файл square.py. Однако куда поместить сам файл?
Когда интерпретатор Питона встречает команду импорта, то просматривает на наличие файла-модуля определенные каталоги. Их перечень можно увидеть по содержимому sys.path:
>>> import sys >>> sys.path ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/pl/.local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
Это список адресов в Linux. В Windows он будет несколько другим. Первый элемент – пустая строка, что обозначает текущий каталог, то есть то место, где сохранена сама программа, импортирующая модуль. Если вы сохраните файл-модуль и файл-программу в одном каталоге, то интерпретатор без труда найдет модуль.
Также модуль можно положить в любой другой из указанных в списке каталогов. Тогда он будет доступен для всех программ на Python, а также его можно будет импортировать в интерактивном режиме.
Можно добавить в sys.path свой каталог. Однако в этом случае либо код программы должен содержать команды изменения значения sys.path, либо надо править конфигурационный файл операционной системы. В большинстве случаев лучше так не делать.
Поместите файл square.py в тот же каталог, где будет исполняемая программа. Ее код должен включать инструкцию импорта модуля square (при импорте расширение файла не указывается) и вызов той функции и с теми параметрами, которые ввел пользователь. Т. е. у пользователя надо спросить, площадь какой фигуры он хочет вычислить. Далее запросить у него аргументы для соответствующей функции. Передать их в функцию из модуля square, а полученный оттуда результат вывести на экран.
Примечание. Исполнение модуля как самостоятельного скрипта, а также создание строк документации, которые отображает встроенная в Python функция help(), будут рассмотрены в курсе объектно-ориентированного программирования.
Python NumPy
NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution
NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations
Фаза (аргумент)
Мы можем представить комплексное число как вектор, состоящий из двух компонентов на плоскости, состоящей из и осей. Следовательно, две составляющие вектора — это действительная и мнимая части.
Угол между вектором и действительной осью определяется как или комплексного числа.
Формально это определяется как:
фаза (число) = arctan (мнимая_часть / действительная_часть)
где функция arctan является обратной математической функцией tan.
В Python мы можем получить фазу комплексного числа, используя модуль для комплексных чисел. Мы также можем использовать функцию и получить фазу из ее математического определения.
import cmath import math num = 4 + 3j # Using cmath module p = cmath.phase(num) print('cmath Module:', p) # Using math module p = math.atan(num.imag/num.real) print('Math Module:', p)
Вывод:
cmath Module: 0.6435011087932844 Math Module: 0.6435011087932844
Обратите внимание, что эта функция возвращает фазовый угол в , поэтому, если нам нужно преобразовать в , мы можем использовать другую библиотеку, например
import cmath import numpy as np num = 4 + 3j # Using cmath module p = cmath.phase(num) print('cmath Module in Radians:', p) print('Phase in Degrees:', np.degrees(p))
Вывод:
cmath Module in Radians: 0.6435011087932844 Phase in Degrees: 36.86989764584402
Стандартные модули
Python распространяется с библиотекой стандартных модулей. Библиотека включает в себя более 200 модулей, которые выполняют платформенно-зависимую поддержку таких задач, как: интерфейс к операционной системе, управление объектами, поиск, сеть + интернет, GUI и т.д. Полный список стандартных модулей можно посмотреть на http://docs.python.org/library/.
Часть модулей встроена в интерпретатор по умолчанию, обеспечивая доступ к операциям; они встроены либо из соображений эффективности, либо для обеспечения доступа к примитивам операционной системы — например, модуль sys.
Переменная sys.path содержит список строк с именами каталогов, в которых происходит поиск модулей. Она инициализируется из значения переменной окружения PYTHONPATH и встроенного значения по умолчанию. Можно добавить путь:
>>> import sys >>> sys.path.append(/home/my/lib/python)
Для выяснения имен, определенных в модуле, можно использовать встроенную функцию dir(). Она возвращает отсортированный список строк:
>>> dir(sys)
Комбинации элементов между собой
В библиотеке есть еще одна функция, связанная с перестановками и комбинациями, называемая . Эта функция является разновидностью функции , с той небольшой разницей, что она включает комбинации элементов между собой.
import itertools values = com = itertools.combinations_with_replacement(values, 2) for val in com: print(*val)
Выход:
1 1 1 2 1 3 1 4 2 2 2 3 2 4 3 3 3 4 4 4
Мы можем видеть четкое отличие вышеприведенного вывода от вывода с теми же параметрами при передаче в функцию .
Есть комбинации чисел, как будто их несколько экземпляров в списке. В основном это происходит потому, что, когда мы выбираем элемент из списка, вышеуказанная функция снова помещает то же значение, чтобы получить комбинации.
Еще пример. Наша задача — отобразить перестановку заданной строки. Здесь решаем эту проблему в python, используя перестановки встроенных функций (итерируемые).
Input : string = 'XYZ' Output : XYZ XZY YXZ YZX ZXY ZYX
Алгоритм
Step 1: given string. Step 2: Get all permutations of string. Step 3: print all permutations.
Пример кода
from itertools import permutations def allPermutations(str1): # Get all permutations of string 'ABC' per = permutations(str1) # print all permutations print("Permutation Of this String ::>") for i in list(per): print (''.join(i)) # Driver program if __name__ == "__main__": str1 = input("Enter the string ::>") allPermutations(str1)
Вывод
Enter the string ::> abc Permutation Of this String ::> abc acb bac bca cab cba
Арифметические операции
Подобно действительным числам, комплексные числа также можно складывать, вычитать, умножать и делить. Давайте посмотрим, как мы могли бы это сделать в Python.
a = 1 + 2j b = 2 + 4j print('Addition =', a + b) print('Subtraction =', a - b) print('Multiplication =', a * b) print('Division =', a / b)
Выход:
Addition = (3+6j) Subtraction = (-1-2j) Multiplication = (-6+8j) Division = (2+0j)
ПРИМЕЧАНИЕ. В отличие от действительных чисел, мы не можем сравнивать два комплексных числа. Мы можем сравнивать только их действительную и мнимую части по отдельности, поскольку это действительные числа. Приведенный ниже фрагмент доказывает это.
>>> a (4+3j) >>> b (4+6j) >>> a < b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '<' not supported between instances of 'complex' and 'complex'
Гиперболические функции
Подобно тригонометрическим функциям, гиперболические функции для комплексного числа также доступны в модуле .
import cmath a = 3 + 4j print('Hyperbolic Sine:', cmath.sinh(a)) print('Hyperbolic Cosine:', cmath.cosh(a)) print('Hyperbolic Tangent:', cmath.tanh(a)) print('Inverse Hyperbolic Sine:', cmath.asinh(a)) print('Inverse Hyperbolic Cosine:', cmath.acosh(a)) print('Inverse Hyperbolic Tangent:', cmath.atanh(a))
Вывод:
Hyperbolic Sine: (-6.5481200409110025-7.61923172032141j) Hyperbolic Cosine: (-6.580663040551157-7.581552742746545j) Hyperbolic Tangent: (1.000709536067233+0.00490825806749606j) Inverse Hyperbolic Sine: (2.2999140408792695+0.9176168533514787j) Inverse Hyperbolic Cosine: (2.305509031243477+0.9368124611557198j) Inverse Hyperbolic Tangent: (0.11750090731143388+1.4099210495965755j)
Assignment Operators
The most common assignment operator is one you have already used: the equals sign . The assignment operator assigns the value on the right to a variable on the left. For example, assigns the value of the integer to the variable .
When programming, it is common to use compound assignment operators that perform an operation on a variable’s value and then assign the resulting new value to that variable. These compound operators combine an arithmetic operator with the operator, so for addition we’ll combine with to get the compound operator . Let’s see what that looks like:
First, we set the variable equal to the value of , then we used the compound assignment operator to add the right number to the value of the left variable and then assign the result to .
Compound assignment operators are used frequently in the case of for loops, which you’ll use when you want to repeat a process several times:
With the for loop, we were able to automate the process of the operator that multiplied the variable by the number and then assigned the result in the variable for the next iteration of the for loop.
Python has a compound assignment operator for each of the arithmetic operators discussed in this tutorial:
Compound assignment operators can be useful when things need to be incrementally increased or decreased, or when you need to automate certain processes in your program.
Графический интерфейс
В стандартной библиотеке Python есть
графическая библиотека интерфейсов
Tkinter. Но при помощи внешних модулей вы
можете поднять GUI ваших приложений на
новый уровень.
wxPython. Создает по-настоящему нативные пользовательские интерфейсы для Python-приложений, которые могут запускаться на Windows, Mac и Linux, а также прочих Unix-подобных системах практически без каких-либо модификаций.
PyGObject. Пакет Python, предоставляющий привязки для библиотек на базе Gobject, таких как GTK, GStreamer, WebKitGTK, GLib, GIO и др.
Pmw. Набор инструментов для создания на Python высокоуровневых составных виджетов (с использованием модуля Tkinter).
WCK. Расширение API, позволяющее реализовывать на чистом Python всевозможные пользовательские виджеты.
Tix. Мощный набор компонентов пользовательского интерфейса, при помощи которого можно расширить возможности ваших Tcl/Tk и Python-приложений. Использование Tix вместе с Tk очень улучшает внешний вид и функционал приложений.
Создать комбинации с помощью combinations()
Мы также можем создавать последовательности комбинаций, используя Python .
iterator = itertools.combinations(*sequence, r)
Вот простой пример:
import itertools words = results = itertools.combinations(words, 2) for item in results: print(item)
Выход
('hello', 'from') ('hello', 'AskPython') ('hello', 'how') ('from', 'AskPython') ('from', 'how') ('AskPython', 'how')
Если вы хотите, чтобы в комбинациях повторялись последовательные элементы, вы можете использовать .
results = itertools.combinations_with_replacement(words, 3) for item in results: print(item)
Выход
('hello', 'hello', 'hello') ('hello', 'hello', 'from') ('hello', 'hello', 'AskPython') ('hello', 'hello', 'how') ('hello', 'from', 'from') ('hello', 'from', 'AskPython') ('hello', 'from', 'how') ('hello', 'AskPython', 'AskPython') ('hello', 'AskPython', 'how') ('hello', 'how', 'how') ('from', 'from', 'from') ('from', 'from', 'AskPython') ('from', 'from', 'how') ('from', 'AskPython', 'AskPython') ('from', 'AskPython', 'how') ('from', 'how', 'how') ('AskPython', 'AskPython', 'AskPython') ('AskPython', 'AskPython', 'how') ('AskPython', 'how', 'how') ('how', 'how', 'how')
Точно так же вы можете перечислить перестановки, используя и .
cmath[править]
Этот модуль всегда доступен и позволяет проводить операции над комплексными числами. При этом функции модуля поддерживают работу не только с комплексными, но и с целыми числами и числами с плавающей запятой
Причина, по которой имеются два таких схожих модуля, в том, что многим пользователям не нужны комплексные числа или они просто не знают что это такое. В этих случаях будет даже лучше, если при math.sqrt(-1) будет возбуждено исключение, чем будет найдено комплексное решение. При этом отметим, что функции в модуле всегда возвращают комплексное число, даже если исходные числа не содержат мнимой части.
Переход к полярным координатам и обратноправить
Комплексное число z может быть представлено в Декартовой системе координат в представлении, что действительная z.real часть откладывается по оси x, а мнимая z.imag — по оси y. Само число z записывается:
z = z.real + z.imag*1j
Полярные координаты позволяют представить комплексное число другим образом — в виде радиуса ρ и фазового угла φ. Координата ρ определяет расстояние от точки до полюса, координата φ — угол между полярной осью и отрезком, соединяющим полюс и рассматриваемую точку.
Следующие функции могут быть использованы для перехода от исходных прямоугольных координат к полярным:
-
cmath.phase
Возвращает фазовый угол φ для числа x, phase(x) эквивалентно math.atan2(x.imag, x.real). Результат лежит в интервале .
(x)
-
cmath.polar
Возвращает представление x в полярных координатах, то есть возвращает пару (r, phi).
(x)
-
cmath.rect(r, phi)
Возвращает обычное комплексное представление x из представления в полярных координатах.
(x)
Другие функцииправить
Модуль содержит также ряд функций, с которыми мы ознакомились в модуле math, имеющими то же применение не только к действительным, но и к комплексным числам:
Константыправить
- cmath.pi
- cmath.e
Изучив, данный раздел, мы можем приступить к третьему уроку данного курса, посвященному циклу и последовательностям.
The Math Module
Python has also a built-in module called , which extends the list of mathematical functions.
To use it, you must import the module:
import math
When you have imported the module, you
can start using methods and constants of the module.
The method for example, returns the square root of a number:
import
mathx = math.sqrt(64)print(x)
The method rounds a number upwards to
its nearest integer, and the
method rounds a number downwards to its nearest integer, and returns the result:
import
mathx = math.ceil(1.4)y = math.floor(1.4)print(x) #
returns 2print(y) # returns 1
The constant, returns the value of
PI (3.14…):
math[править]
Модуль math всегда доступен и обеспечивает доступ к математическим функциям.
Данные функции неприменимы к комплексным числам, для работы с комплексными числами имеются функции с теми же именами в модуле cmath.
Модуль содержит следующие функции. Во всех случаях, кроме особо оговоренных, функции возвращают число типа float.
Теоретико-численные функции и функции представленияправить
-
math.ceil
Возвращает округленное x как ближайшее целое значение типа float, большее или равное x (округление «вверх»).
(x)
-
math.copysign
Возвращает число x со знаком числа y. На платформе, поддерживающей знак нуля copysign(1.0, -0.0) даст -1.0.
(x, y)
-
math.fabs
Возвращает абсолютное значение (модуль) числа x. В Python есть встроенная функция abs, но она возвращает модуль числа с тем же типом, что число, здесь же всегда float abs (fabs).
(x)
-
math.factorial
Возвращает факториал целого числа x, если x не целое возбуждается ошибка ValueError.
(x)
-
math.floor
В противоположность ceil(x) возвращает округленное x как ближайшее целое значение типа float, меньшее или равное x (округление «вниз»).
(x)
-
math.fmod
Аналогична функции fmod(x, y) библиотеки C. Отметим, что это не то же самое, что выражение Python x%y. Желательно использовать при работе с объектами float, в то время как x % y больше подходит для int.
(x, y)
-
math.frexp
Представляет число в экспоненциальной записи x=m∗2e{\displaystyle x=m*2^{e}} и возвращает мантиссу m (действительное число, модуль которого лежит в интервале от 0.5 до 1) и порядок e (целое число) как пару чисел (m, e). Если x=0, то возвращает (0.0, 0)
(x)
-
math.fsum
Возвращает float сумму от числовых элементов итерируемого объекта.
(iterable)
-
math.isinf
Проверяет, является ли float объект x плюс или минус бесконечностью, результат соответственно True или False.
(x)
-
math.isnan
Проверяет, является ли float объект x объектом NaN (not a number).
(x)
-
math.ldexp
Возвращает значение x∗2i{\displaystyle x*2^{i}}, то есть осуществляет действие, обратное функции math.frexp(x).
(x, i)
-
math.modf
Возвращает часть, идущую после запятой и целую часть от float числа. Оба результата сохраняют знак исходного числа x и представлены типом float.
(x)
-
math.trunc
Возвращает целую часть числа x в виде int объекта.
(x)
Степенные и логарифмические функцииправить
-
math.exp
Возвращает ex{\displaystyle e^{x}}.
(x)
-
math.log
При передаче функции одного аргумента x, возвращает натуральный логарифм x. При передаче двух аргументов, второй берется как основание логарифма.
(x)
-
math.log1p
Возвращает натуральный логарифм от x+1.
(x)
-
math.log10
Возвращает десятичный логарифм x.
(x)
-
math.pow
Возвращает xy{\displaystyle x^{y}}.
(x, y)
-
math.sqrt
Квадратный корень (square root) из x.
(x)
Тригонометрические функцииправить
-
math.acos
Возвращает арккосинус x, в радианах.
(x)
-
math.asin
Возвращает арксинус x, в радианах.
(x)
-
math.atan
Возвращает арктангенс x, в радианах.
(x)
-
math.atan2
Возвращает atan(y/x), в радианах. Результат лежит в интервале . Вектор, конец, которого задается точкой (x, y) образует угол с положительным направлением оси x. Поэтому эта функция имеет более общее назначение, чем предыдущая. Например и atan(1), и atan2(1, 1) дадут в результате pi/4, но atan2(-1, -1) это уже -3*pi/4.
(y, x)
-
math.cos
Возвращает косинус x, где x выражен в радианах.
(x)
-
math.hyp
Возвращает евклидову норму, то есть sqrt(x**2+y**2). Удобно для вычисления гипотенузы (hyp) и длины вектора.
(x, y)
-
math.sin
Возвращает синус x, где x выражен в радианах.
(x)
-
math.tan
Возвращает тангенс x, где x выражен в радианах.
(x)
Радианы в градусы и наоборотправить
-
math.degrees
Конвертирует значение угла x из радиан в градусы.
(x)
-
math.radians
Конвертирует значение угла x из градусов в радианы.
(x)
Гиперболические функцииправить
Смысл ясен из названий и соответствует стандартным обозначениям англоязычной литературы:
- math.acosh(x)
- math.asinh(x)
- math.atanh(x)
- math.cosh(x)
- math.sinh(x)
- math.tanh(x)
Целые числа (int)
В Python любое число, состоящее из десятичных цифр без префикса, интерпретируется как десятичное число типа
Целые числа в Python представлены только одним типом – PyLongObject, реализация которого лежит в longobject.c, а сама структура выглядит так:
Любое целое число состоит из массива цифр переменной длины, поэтому в Python 3 в переменную типа может быть записано число неограниченной длины. Единственное ограничение длины – это размер оперативной памяти.
Целые числа могут записываться не только как десятичные, но и как двоичные, восьмеричные или шестнадцатеричные. Для этого перед числом нужно написать символы:
- 0b (0B) – для двоичного представления;
- 0o (0O) – для восьмеричного представления;
- 0x (0X) – для шестнадцатеричного представления.
Заключение
Сегодня мы узнали основы модульной системы питона и импорта компонентов. Импорт модулей — это основа программной архитектуры в питоне. Большие программы состоят из большого количества файлов, и объединяет их линковка во время исполнения на основе импорта. Модули структурируют программу, разбивая логику на отдельные компоненты. Код внутри одного модуля изолирован от остальных модулей, что минимизирует коллизию имен внутри программы.
Пакетный импорт упрощает поиск путей, на уровне файловой системы организует управление модульными библиотеками с многоуровневой вложенностью. В продолжение цикла мы расскажем о классах в Python. Код примеров проверялся на версии питона 2.6.
<< Предыдущая статья. Следующая статья >>