Использование серии для вычисления числа пи в python
Содержание:
- Функции и реализация
- Функция random() – «случайные» вещественные числа
- Полярные и прямоугольные координаты
- Вычисление квадратного корня в Python С помощью функции sqrt()
- Модули
- Целые числа (int)
- Конвертация типов числа в Python
- Полезные методы Decimal
- Экспоненциальные и логарифмические функции
- Число Пи из библиотеки math
- Примеры
- Функция compare()
- USB и последовательные порты
- Для повторения значения
- Для чего нужен модуль Decimal?
- Функция экспоненты exp() в Python
- Машинное обучение и искусственный интеллект
- cmath[править]
- Разработка игр
- Math Methods
Функции и реализация
Различные арифметические операции могут выполняться с десятичными или числовыми данными для улучшения результата.
Мы можем определить числа с десятичной запятой, используя как показано ниже.
Синтаксис:
import decimal variable = decimal.Decimal(decimal-number)
Кроме того, мы можем контролировать значение точности результатов чисел с десятичной запятой, используя встроенную функцию десятичного модуля — .
Синтаксис:
decimal.getcontext().prec = precision value
Описанные ниже функции помогают нам выполнять арифметические операции с десятичной запятой эффективно и с большой скоростью.
Функция random() – «случайные» вещественные числа
Чтобы получить случайное вещественное число, или, как говорят, число с плавающей точкой, следует использовать функцию из одноименного модуля языка Python. Она не принимает никаких аргументов и возвращает число от 0 до 1, не включая 1:
>>> random.random() 0.17855729241927576 >>> random.random() 0.3310978930421846
или
>>> random() 0.025328854415995194
Результат содержит много знаков после запятой. Чтобы его округлить, можно воспользоваться встроенной в Python функцией :
>>> a = random.random() >>> a 0.8366142721623201 >>> round(a, 2) 0.84 >>> round(random.random(), 3) 0.629
Чтобы получать случайные вещественные числа в иных пределах, отличных от [0; 1), прибегают к математическим приемам. Так если умножить полученное из число на любое целое, то получится вещественное в диапазоне от 0 до этого целого, не включая его:
>>> random.random() * 10 2.510618091637596 >>> random.random() * 10 6.977540211221759
Если нижняя граница должна быть отличной от нуля, то число из надо умножать на разницу между верхней и нижней границами, после чего прибавить нижнюю:
>>> random.random() * (10 - 4) + 4 9.517280589233597 >>> random.random() * (10 - 4) + 4 6.4429124181215975 >>> random.random() * (10 - 4) + 4 4.9231983600782385
В данном примере число умножается на 6. В результате получается число от 0 до 6. Прибавив 4, получаем число от 4 до 10.
Пример получения случайных чисел от -1 до 1:
>>> random.random() * (1 + 1) - 1 -0.673382618351051 >>> random.random() * (1 + 1) - 1 0.34121487148075924 >>> random.random() * (1 + 1) - 1 -0.988751324713907 >>> random.random() * (1 + 1) - 1 0.44137358363477674
Нижняя граница равна -1. При вычитании получается +. Когда добавляется нижняя граница, то плюс заменяется на минус ( +(-1) = — 1).
Для получения псевдослучайных чисел можно пользоваться исключительно функцией . Если требуется получить целое, то всегда можно округлить до него с помощью или отбросить дробную часть с помощью :
>>> int(random.random() * 100) 61 >>> round(random.random() * 100 - 50) -33
Полярные и прямоугольные координаты
Мы можем записать комплексное число в полярных координатах, которое представляет собой набор модуля и фазы комплексного числа.
Мы можем использовать функцию cmath.rect(), чтобы создать комплексное число в прямоугольном формате, передав модуль и фазу в качестве аргументов.
c = 1 + 2j modulus = abs(c) phase = cmath.phase(c) polar = cmath.polar(c) print('Modulus =', modulus) print('Phase =', phase) print('Polar Coordinates =', polar) print('Rectangular Coordinates =', cmath.rect(modulus, phase))
Вывод:
Modulus = 2.23606797749979 Phase = 1.1071487177940904 Polar Coordinates = (2.23606797749979, 1.1071487177940904) Rectangular Coordinates = (1.0000000000000002+2j)
Вычисление квадратного корня в Python С помощью функции sqrt()
Математический модуль Python имеет дело с математическими функциями и вычислениями. Функция sqrt() в математическом модуле используется для вычисления квадратного корня из заданного числа.
Возвращаемое значение функции sqrt()
метод sqrt() в Python вернет квадратный корень из заданного числа с плавающей запятой. Если значение меньше 0, то он вернет ошибку времени выполнения.
Примеры Вычисления Квадратного Корня С Помощью Функции sqrt()
Давайте рассмотрим несколько примеров вычисления квадратного корня Python с помощью функции sqrt ().
Пример 1: Вычисление квадратного корня из положительного целого числа
Выход:
Пример 2: Вычисление квадратного корня из числа с плавающей запятой
Выход:
Пример 3: Вычисление квадратного корня из 0
Выход:
Выход:
Выход:
Таким образом, когда x <0 он не выполняется, вместо этого генерируется ValueError.
Пример 5: Вычисление квадратного корня из постоянной Больцмана
Выход:
Записи:
- функция math.sqrt () – это встроенная функция в языке программирования Python, которая предоставляет квадратный корень из заданного числа. Для работы функции math.sqrt() необходимо импортировать модуль (библиотеку) “math”. Если вы передадите отрицательное значение в функцию sqrt, то python выдаст ошибку
Модули
Система модулей позволяет вам логически организовать ваш код на Python. Группирование кода в модули значительно облегчает процесс написания и понимания программы.
Говоря простым языком, модуль в Python это просто файл, содержащий код на Python. Каждый модуль в Python может содержать переменные, объявления классов и функций.
Кроме того, в модуле может находиться исполняемый код.
Вы можете использовать любой питоновский файл как модуль в другом файле, выполнив в нем команду . Команда в Python обладает
следующим синтаксисом:
import math # Используем функцию sqrt из модуля math print (math.sqrt(9)) # Печатаем значение переменной pi, определенной в math print (math.pi)
Важно знать, что модуль загружается лишь однажды, независимо от того, сколько раз он был импортирован. Это препятствует цикличному выполнению содержимого модуля
Команда позволяет вам импортировать не весь модуль целиком, а только определенное его содержимое. Например:
# Импортируем из модуля math функцию sqrt
from math import sqrt
# Выводим результат выполнения функции sqrt.
# Обратите внимание, что нам больше незачем указывать имя модуля
print (sqrt(144))
# Но мы уже не можем получить из модуля то, что не импортировали
print (pi) # Выдаст ошибку
Выражение не импортирует весь модуль, а только предоставляет доступ к конкретным объектам, которые мы указали.
В Python так же возможно импортировать всё (переменные, функции, классы) за раз из модуля, для этого используется конструкция . Например:
from math import * # Теперь у нас есть доступ ко всем функция и переменным, определенным в модуле math print (sqrt(121)) print (pi) print (e)
Однако это конструкцию следует использовать с осторожностью, поскольку при импортировании нескольких модулей можно запутаться в своем собственном коде
Целые числа (int)
В Python любое число, состоящее из десятичных цифр без префикса, интерпретируется как десятичное число типа
Целые числа в Python представлены только одним типом – PyLongObject, реализация которого лежит в longobject.c, а сама структура выглядит так:
Любое целое число состоит из массива цифр переменной длины, поэтому в Python 3 в переменную типа может быть записано число неограниченной длины. Единственное ограничение длины – это размер оперативной памяти.
Целые числа могут записываться не только как десятичные, но и как двоичные, восьмеричные или шестнадцатеричные. Для этого перед числом нужно написать символы:
- 0b (0B) – для двоичного представления;
- 0o (0O) – для восьмеричного представления;
- 0x (0X) – для шестнадцатеричного представления.
Конвертация типов числа в Python
Python может конвертировать начальный тип числа в другой указанный тип. Данный процесс называется «преобразованием». Python может внутренне конвертировать число одного типа в другой, когда в выражении присутствуют смешанные значения. Такой случай продемонстрирован в следующем примере:
Python
3 + 5.1
1 | 3+5.1 |
Вывод
Shell
8.1
1 | 8.1 |
В вышеприведенном примере целое число 3 было преобразовано в вещественное число 3.0 с плавающей точкой. Результатом сложения также является число с плавающей точкой (или запятой).
Однако иногда вам необходимо явно привести число из одного типа в другой, чтобы удовлетворить требования параметра функции или оператора. Это можно сделать с помощью различных встроенных функций Python.
Например, чтобы преобразовать целое число в число с плавающей точкой, мы должны вызвать функцию , как показано ниже:
Python
a = 12
b = float(a)
print(b)
1 2 3 |
a=12 b=float(a) print(b) |
Вывод
Shell
12.0
1 | 12.0 |
Целое число типа было преобразовано в вещественное число типа . также можно конвертировать в следующим образом:
Python
a = 12.65
b = int(a)
print(b)
1 2 3 |
a=12.65 b=int(a) print(b) |
Вывод
Shell
12
1 | 12 |
Вещественное число было преобразовано в целое через удаление дробной части и сохранение базового числа
Обратите внимание, что при конвертации значения в подобным образом число будет усекаться, а не округляться вверх
Заключение
Библиотека Math предоставляет функции и константы, которые можно использовать для выполнения арифметических и тригонометрических операций в Python. Библиотека изначально встроена в Python, поэтому дополнительную установку перед использованием делать не требуется. Для получения дополнительной информации можете просмотреть официальную документацию.
Полезные методы Decimal
Итак, вот некоторые полезные методы для работы с десятичными числами в Decimal:
- – вычисляет квадратный корень из десятичного числа;
- – возвращает e^x (показатель степени) десятичного числа;
- – используется для вычисления натурального логарифма десятичного числа;
- – используется для вычисления log (основание 10) десятичного числа;
- – возвращает десятичное число, содержащее 3 аргумента, знак (0 для +, 1 для -), цифры и значение экспоненты;
- fma(a, b) – «fma» означает сложить, умножить и добавить. Данный метод вычисляет из чисел в аргументе. В этой функции округление не выполняется;
- – печатает первый аргумент, копируя знак из второго аргумента.
Полный список методов Decimal описан в
Экспоненциальные и логарифмические функции
import cmath a = 3 + 4j print('e^c =', cmath.exp(a)) print('log2(c) =', cmath.log(a, 2)) print('log10(c) =', cmath.log10(a)) print('sqrt(c) =', cmath.sqrt(a))
Вывод:
e^c = (-13.128783081462158-15.200784463067954j) log2(c) = (2.321928094887362+1.3378042124509761j) log10(c) = (0.6989700043360187+0.4027191962733731j) sqrt(c) = (2+1j)
Другие
Есть несколько разных функций, чтобы проверить, является ли комплексное число конечным, бесконечным или . Также есть функция проверки близости двух комплексных чисел.
>>> print(cmath.isfinite(2 + 2j)) True >>> print(cmath.isfinite(cmath.inf + 2j)) False >>> print(cmath.isinf(2 + 2j)) False >>> print(cmath.isinf(cmath.inf + 2j)) True >>> print(cmath.isinf(cmath.nan + 2j)) False >>> print(cmath.isnan(2 + 2j)) False >>> print(cmath.isnan(cmath.inf + 2j)) False >>> print(cmath.isnan(cmath.nan + 2j)) True >>> print(cmath.isclose(2+2j, 2.01+1.9j, rel_tol=0.05)) True >>> print(cmath.isclose(2+2j, 2.01+1.9j, abs_tol=0.005)) False
Число Пи из библиотеки math
Первой важной математической константой является число Пи (π). Оно обозначает отношение длины окружности к диаметру, его значение 3,141592653589793
Чтобы получить к нему доступ, сначала импортируем библиотеку math следующим образом:
Python
import math
1 | importmath |
Затем можно получить доступ к константе, вызывая :
Python
math.pi
1 | math.pi |
Вывод
Shell
3.141592653589793
1 | 3.141592653589793 |
Данную константу можно использовать для вычисления площади или длины окружности. Далее представлен пример простого кода, с помощью которого это можно сделать:
Python
import math
radius = 2
print(‘Площадь окружности с радиусом 2 равна:’, math.pi * (radius ** 2))
1 2 3 4 |
importmath radius=2 print(‘Площадь окружности с радиусом 2 равна:’,math.pi*(radius**2)) |
Вывод
Shell
Площадь окружности с радиусом 2 равна: 12.566370614359172
1 | Площадьокружностисрадиусом2равна12.566370614359172 |
Мы возвели радиус во вторую степень и умножили значение на число Пи, как и следовало сделать в соответствии с формулой πr2.
Примеры
Чтобы воспользоваться возможностями генерации случайных чисел в Python 3, следует произвести импорт библиотеки random, вынеся ее в начало исполняемого файла при помощи ключевого слова import.
Вещественные числа
В модуле есть одноименная функция random. В Python она используется чаще, чем другие функции этого модуля. Функция возвращает вещественное число в промежутке от 0 до 1. В следующем примере демонстрируется создание трех разных переменных a, b и c.
import random a = random.random() b = random.random() print(a) print(b) 0.547933286519 0.456436031781
Целые числа
Для получения случайных целых чисел в определенном диапазоне используется функция randint, принимающая два аргумента: минимальное и максимальное значение. Программа, показанная ниже отображает генерацию трех разных значений в промежутке от 0 до 9.
import random a = random.randint(0, 9) b = random.randint(0, 9) print(a) print(b) 4 7
Диапазоны целых
Метод randrange позволяет генерировать целочисленные значения, благодаря работе с тремя параметрами: минимальная и максимальная величина, а также длина шага. Вызвав функцию с одним аргументом, начальная граница получит значение 0, а интервал станет равен 1. Для двух аргументов автоматически инициализируется только длина шага. Работа данного метода с трема разными наборами параметров показана в следующем примере.
import random a = random.randrange(10) b = random.randrange(2, 10) c = random.randrange(2, 10, 2) print(a) print(b) print(c) 9 5 2
Диапазоны вещественных
Сгенерировать вещественное число поможет метод под названием uniform. Он принимает всего два аргумента, обозначающих минимальное и максимальное значения. Демонстрация его работы располагается в следующем примере кода, где создаются переменные a, b и c.
import random a = random.uniform(0, 10) b = random.uniform(0, 10) print(a) print(b) 4.85687375091 3.66695202551
Использование в генераторах
Возможности генерации псевдослучайных чисел можно использовать и для создания последовательностей. В следующем фрагменте кода создается набор чисел при помощи генератора списка со случайным наполнением и длиной. Как можно заметить, в данном примере функция randint вызывается дважды: для каждого элемента и размера списка.
import random a = print(a)
Перемешивание
Метод shuffle дает возможность перемешать содержимое уже созданного списка. Таким образом, все его элементы будут находиться в абсолютно случайном порядке. Пример, где отображается работа этой функции со списком a из 10 значений, располагается дальше.
import random a = random.shuffle(a) print(a)
Случайный элемент списка
При помощи функции choice можно извлечь случайный элемент из существующего набора данных. В следующем примере переменная b получает некое целое число из списка a.
import random a = b = random.choice(a) print(b) 7
Несколько элементов списка
Извлечь из последовательности данных можно не только один элемент, но и целый набор значений. Функция sample позволит получить абсолютно новый список чисел из случайных компонентов уже существующего списка. В качестве первого аргумента необходимо ввести исходную последовательность, а на месте второго указать желаемую длину нового массива.
import random a = a = random.sample(a, 5) print(a)
Генерация букв
Возможности стандартной библиотеки позволяют генерировать не только числа, но и буквы. В следующем примере показывается инициализация трех разных переменных случайными символами латиницы. Для этого необходимо произвести импортирование модуля string, а затем воспользоваться списком letters, который включает все буквы английского алфавита.
import random import string a = random.choice(string.letters) b = random.choice(string.letters) c = random.choice(string.letters) print(a) print(b) print(c) J i L
Как можно заметить, отображаются буквы в разном регистре. Для того чтобы преобразовать их к общему виду, рекомендуется вызвать стандартные строковые методы upper или lower.
SystemRandom
Как уже говорилось ранее, SystemRandom основана на os.urandom. Она выдает так же псевдослучайные данные, но они зависят дополнительно и от операционной системы. Результаты используются в криптографии. Есть недостаток — то что функции SystemRandom отрабатывают в несколько раз дольше. Рассмотрим пример использования:
import random sr = random.SystemRandom() a = sr.random() b = sr.randint(0, 9) c = sr.randrange(2, 10, 2) print(a) print(b) print(c) 0.36012464614815465 2 8
Функция compare()
Функция сравнивает два числа с десятичной запятой и возвращает значения в зависимости от условий следующим образом:
- Возвращает -1, если первое десятичное число меньше второго десятичного числа.
- Возвращает 1, если первое десятичное число больше второго десятичного числа.
- Возвращает 0, если оба значения десятичной точки равны.
Пример:
import decimal as d valx = d.Decimal(122.20) valy = d.Decimal(123.01) print("Value 1: ",valx) print("Value 2: ",valy) compare = valx.compare(valy) print(compare)
Выход:
Value 1: 122.2000000000000028421709430404007434844970703125 Value 2: 123.0100000000000051159076974727213382720947265625 -1
USB и последовательные порты
Знаете ли вы, что при помощи Python можно
получить доступ к USB и последовательным
портам компьютера? Если вам нужно решить
подобную задачу, следующие модули
помогут вам в этом.
PyUSB. Это простой в использовании модуль для доступа к USB-устройствам. PyUSB опирается на нативную системную библиотеку для USB-доступа. Работает «из коробки» с libusb 0.1, libusb 1.0, libusbx, libusb-win32 и OpenUSB, а также с Python в любой версии, начиная с 2.4 (и включая Python 3).
PySerial. Библиотека Python для доступа к последовательным портам.
USPP. Мультиплатформенный модуль Python для доступа к последовательным портам.
Для повторения значения
Предположим, вы хотите повторить определенное значение, вы можете создать итератор для повторяющегося значения, используя .
Например, если вы хотите построить последовательность вида , где i находится в диапазоне от 0 до 10, вы можете использовать эту функцию.
import itertools data = list(zip(range(10), itertools.repeat(5))) print(data)
Выход
Действительно, нам удалось легко сделать эту последовательность.
Другой пример, в котором эта функция полезна, — если вы пытаетесь построить квадраты с помощью map() в Python.
squares = list(map(pow, range(10), itertools.repeat(2))) print(squares)
Выход
Видите, как легко мы смогли построить его с помощью .
Для чего нужен модуль Decimal?
Некоторые пользователи задаются вопросом, зачем нам нужен модуль для выполнения простейшей арифметики с десятичными числами, когда мы вполне можем сделать то же самое с помощью чисел с плавающей точкой ?
Перед тем, как мы ответим на данный вопрос, мы хотим, чтобы вы сами посчитали в Python, какой результат будет в данном примере: 0.1+0.2? Вы будете удивлены, когда узнаете, что правильный ответ – это не 0,3, а 0,30000000000000004.
Чтобы понять, почему в расчетах возникла ошибка, попробуйте представить 1/3 в десятичной форме. Тогда вы заметите, что число на самом деле не заканчивается в базе 10. Так как все числа должны быть каким-то образом представлены, при их сохранении в консоли делается несколько приближений, что и приводит к ошибкам.
Cпециально для читателей-гуманитариев, у нас есть объяснение принципов работы модулей Питона: «Она на долю секунды отвела взгляд» и «Она отвела взгляд на короткое время» — чувствуете разницу?
Чтобы получить точные результаты, подобные тем, к которым мы привыкли при выполнении расчетов вручную, нам нужно что-то, что поддерживает быструю, точно округленную, десятичную арифметику с плавающей запятой, и модуль Decimal отлично справляется с этой задачей. Теперь, когда мы разобрались с теорией, переходим к принципам работы десятичного модуля.
Функция экспоненты exp() в Python
Библиотека Math в Python поставляется с функцией , которую можно использовать для вычисления значения . К примеру, — экспонента от . Значение равно .
Метод может быть использован со следующим синтаксисом:
Python
math.exp(x)
1 | math.exp(x) |
Параметр может быть положительным или отрицательным числом. Если не число, метод возвращает ошибку. Рассмотрим пример использования данного метода:
Python
import math
# Инициализация значений
an_int = 6
a_neg_int = -8
a_float = 2.00
# Передача значений методу exp() и вывод
print(math.exp(an_int))
print(math.exp(a_neg_int))
print(math.exp(a_float))
1 2 3 4 5 6 7 8 9 10 11 |
importmath an_int=6 a_neg_int=-8 a_float=2.00 print(math.exp(an_int)) print(math.exp(a_neg_int)) print(math.exp(a_float)) |
Вывод
Shell
403.4287934927351
0.00033546262790251185
7.38905609893065
1 2 3 |
403.4287934927351 0.00033546262790251185 7.38905609893065 |
Мы объявили три переменные и присвоили им значения с различными числовыми типами данных. Мы передали значения методу для вычисления их экспоненты.
Мы также можем применить данный метод для встроенных констант, что продемонстрировано ниже:
Python
import math
print(math.exp(math.e))
print(math.exp(math.pi))
1 2 3 4 |
importmath print(math.exp(math.e)) print(math.exp(math.pi)) |
Вывод
Shell
15.154262241479262
23.140692632779267
1 2 |
15.154262241479262 23.140692632779267 |
При передаче не числового значения методу будет сгенерирована , как показано далее:
Python
import math
print(math.exp(«20»))
1 2 3 |
importmath print(math.exp(«20»)) |
Вывод
Shell
Traceback (most recent call last):
File «C:/Users/admin/mathe.py», line 3, in <module>
print (math.exp(«20»))
TypeError: a float is required
1 2 3 4 |
Traceback(most recent call last) File»C:/Users/admin/mathe.py»,line3,in<module> print(math.exp(«20»)) TypeErrorafloatisrequired |
Как видно из примера выше, генерируется ошибка .
Машинное обучение и искусственный интеллект
Эта область заслуживает пристального внимания, особенно в связи с развитием технологий. Почти везде в наше время присутствует код МО: в беспилотных автомобилях, распознавании изображений, персонализированном поиске и т. д.
TensorFlow
TensorFlow бесспорно является самым мощным модулем в этом разделе. С помощью данной библиотеки вы можете делать невероятные вещи и при этом особо не вдаваться в суть выполняющихся математических вычислений, но это совсем не повод забросить математику. Преимущество TensorFlow заключается в том, что она позволяет создавать нейронные сети и выполнять стандартные алгоритмы МО. Трудно переоценить огромное значение этого модуля для тех, кто занимается МО.
Keras
Библиотека Keras — это высокоуровневый API для TensorFlow. Она больше подходит для тех, кто только начинает работу в данной области. Keras упрощает доступ к ряду возможностей TensorFlow. Можно сказать, что она представляет собой надстройку над ней, предлагая более простые способы создания моделей и ускоряя выполнение действий.
Pytorch
Хотя у меня самого небольшой опыт работы с Pytorch, я не мог не включить его в этот раздел. В Python он является одним из наиболее значительных фреймворков для МО и ИИ. Pytorch обладает двумя главными особенностями. Во-первых, императивное программирование в противоположность символическому. Императивная программа выполняет вычисления по мере того, как вы их вводите. Благодаря этому свойству программа становится более гибкой. Во-вторых, задействуется динамический вычислительный граф в противоположность статическому. Это означает, что во время выполнения система порождает структуру графа, более подходящую для динамических нейронных сетей.
Scikit-learn
Scikit-learn не обладает такими мощными возможностями, как предыдущие библиотеки и фреймворки. Она более легковесная и позволяет работать с такими алгоритмами, как кластеризация, линейная прогрессия, метод опорных векторов и т. д. Все это можно сделать и в TensorFlow, однако весьма нецелесообразно задействовать массивную библиотеку для выполнения задач, с которыми справится более легкая Scikit-learn.
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
Изучив, данный раздел, мы можем приступить к третьему уроку данного курса, посвященному циклу и последовательностям.
Разработка игр
Python — это очень разносторонний язык,
позволяющий программистам создавать
самые разнообразные приложения, включая
видеоигры.
Pygame. Набор модулей для написания видеоигр. Pygame расширяет функционал прекрасной библиотеки SDL. Благодаря ему на Python можно создавать полнофункциональные игры и мультимедиа-программы.
Pyglet. Мощная, но при этом простая в использовании библиотека Python для разработки игр и других приложений с большим количеством визуальных эффектов для Windows, Mac OS X и Linux.
pyOpenGL. Этот модуль чаще других используется для обеспечения работы с библиотекой OpenGL и связанными с нею API в программах на Python.
Math Methods
Method | Description |
---|---|
math.acos() | Returns the arc cosine of a number |
math.acosh() | Returns the inverse hyperbolic cosine of a number |
math.asin() | Returns the arc sine of a number |
math.asinh() | Returns the inverse hyperbolic sine of a number |
math.atan() | Returns the arc tangent of a number in radians |
math.atan2() | Returns the arc tangent of y/x in radians |
math.atanh() | Returns the inverse hyperbolic tangent of a number |
math.ceil() | Rounds a number up to the nearest integer |
math.comb() | Returns the number of ways to choose k items from n items without repetition and order |
math.copysign() | Returns a float consisting of the value of the first parameter and the sign of the second parameter |
math.cos() | Returns the cosine of a number |
math.cosh() | Returns the hyperbolic cosine of a number |
math.degrees() | Converts an angle from radians to degrees |
math.dist() | Returns the Euclidean distance between two points (p and q), where p and q are the coordinates of that point |
math.erf() | Returns the error function of a number |
math.erfc() | Returns the complementary error function of a number |
math.exp() | Returns E raised to the power of x |
math.expm1() | Returns Ex — 1 |
math.fabs() | Returns the absolute value of a number |
math.factorial() | Returns the factorial of a number |
math.floor() | Rounds a number down to the nearest integer |
math.fmod() | Returns the remainder of x/y |
math.frexp() | Returns the mantissa and the exponent, of a specified number |
math.fsum() | Returns the sum of all items in any iterable (tuples, arrays, lists, etc.) |
math.gamma() | Returns the gamma function at x |
math.gcd() | Returns the greatest common divisor of two integers |
math.hypot() | Returns the Euclidean norm |
math.isclose() | Checks whether two values are close to each other, or not |
math.isfinite() | Checks whether a number is finite or not |
math.isinf() | Checks whether a number is infinite or not |
math.isnan() | Checks whether a value is NaN (not a number) or not |
math.isqrt() | Rounds a square root number downwards to the nearest integer |
math.ldexp() | Returns the inverse of math.frexp() which is x * (2**i) of the given numbers x and i |
math.lgamma() | Returns the log gamma value of x |
math.log() | Returns the natural logarithm of a number, or the logarithm of number to base |
math.log10() | Returns the base-10 logarithm of x |
math.log1p() | Returns the natural logarithm of 1+x |
math.log2() | Returns the base-2 logarithm of x |
math.perm() | Returns the number of ways to choose k items from n items with order and without repetition |
math.pow() | Returns the value of x to the power of y |
math.prod() | Returns the product of all the elements in an iterable |
math.radians() | Converts a degree value into radians |
math.remainder() | Returns the closest value that can make numerator completely divisible by the denominator |
math.sin() | Returns the sine of a number |
math.sinh() | Returns the hyperbolic sine of a number |
math.sqrt() | Returns the square root of a number |
math.tan() | Returns the tangent of a number |
math.tanh() | Returns the hyperbolic tangent of a number |
math.trunc() | Returns the truncated integer parts of a number |