Операторы и выражения в python

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

Для создания комплексного числа можно использовать функцию 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.
>>> x.imag
2.

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

>>> x.conjugate()
(3-2j)

Аргументы

Позиционные

Вспомним, аргумент – это конкретное значение, которое передаётся в функцию. Аргументом может быть любой объект. Он может передаваться, как в литеральной форме, так и в виде переменной.

Значения в позиционных аргументах подставляются согласно позиции имён аргументов:

Именованные

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

При вызове соответствие будет определяться по именам, а не по позициям аргументов:

Необязательные параметры (параметры по умолчанию)

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

Аргументы переменной длины (args, kwargs)

Когда заранее неизвестно, сколько конкретно аргументов будет передано в функцию, мы пользуемся аргументами переменной длины. Звёздочка «*» перед именем параметра сообщает интерпретатору о том, что количество позиционных аргументов будет переменным:

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

Функции в питоне могут также принимать и переменное количество именованных аргументов. В этом случае перед названием параметра ставится «»:

Здесь kwargs уже заключает аргументы не в кортеж, а в словарь.

Если объект неизменяемый, то он передаётся в функцию по значению. Неизменяемые объекты это:

  • Числовые типы (int, float, complex).
  • Строки (str).
  • Кортежи (tuple).

В Python изменяемые объекты это:

  • Списки (list).
  • Множества (set).
  • Словари (dict).

Будьте внимательны при передаче изменяемых объектов. Одна из частых проблем новичков.

В функциональном программировании существует понятие «функциями с побочными эффектами» – когда функция в процессе своей работы изменяет значения глобальных переменных. По возможности, избегать таких функций.

3 Логарифмические функции

Модуль предоставляет нам следующие функции для вычисления логарифмических значений чисел с десятичной запятой:

  • decimal.ln();
  • decimal.log10().

Функция возвращает значение натурального десятичного числа, как показано ниже.

decimal.Decimal(decimal-number).ln()

Функция decimal.log10() используется для вычисления значения журнала по основанию 10 переданного ей десятичного числа.

decimal.Decimal(decimal-number).log10()

Пример:

import decimal as d

d.getcontext().prec = 2

val = d.Decimal(122.20)

log = val.ln()
print("Natural log value of the decimal number: ",log)

log_10 = val.log10()
print("Log value with base 10 of the decimal number: ",log_10)

Выход:

Natural log value of the decimal number:  4.8
Log value with base 10 of the decimal number:  2.1

Важность функций

Абстракция

Человек бежит, машина едет, корабль плывёт, а самолёт летит. Всё это – объекты реального мира, которые выполняют однотипные действия. В данном случае, они перемещаются во времени и пространстве. Мы можем абстрагироваться от их природы, и рассматривать эти объекты с точки зрения того, какое расстояние они преодолели, и сколько времени на это ушло.

Мы можем написать функцию, которая вычисляет скорость в каждом конкретном случае

Нам не важно, кто совершает движение: и для человека и для самолёта средняя скорость будет рассчитываться одинаково

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

Возможность повторного использования

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

Например, при работе с массивами чисел, вам нужно часто их сортировать. Вместо того чтобы реализовать простой алгоритм сортировки (или использовать встроенную функцию), вам пришлось бы каждый раз перепечатывать тело этой или похожей функции:

Всего 10 таких сортировок, и привет, лишние 60 строк кода.

Модульность

Разбитие больших и сложных процессов на простые составляющие – важная часть, как кодинга, так и реальной жизни. В повседневности мы занимаемся этим неосознанно. Когда убираемся в квартире, мы пылесосим, моем полы и окна, очищаем поверхности от пыли и наводим блеск на всё блестящее. Всё это – составляющие одного большого процесса под названием «уборка», но каждую из них также можно разбить на более простые подпроцессы.

В программировании модульность строится на использовании функций. Для каждой подзадачи – своя функция. Такая компоновка в разы улучшает читабельность кода и уменьшает сложность его дальнейшей поддержки.

Допустим, мы работаем с базой данных. Нам нужна программа, которая считывает значения из базы, обрабатывает их, выводит результат на экран, а затем записывает его обратно в базу.

Без применения модульности получится сплошная последовательность инструкций:

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

Это и называется модульностью.

Пространство имен

Концепция пространства имён расширяет понятие модульности. Однако цель – не облегчить читаемость, а избежать конфликтов в названиях переменных.

Пример из жизни: в ВУЗе учатся два человека с совпадающими ФИО. Их нужно как-то различать. Если сделать пространствами имён группы этих студентов, то проблема будет решена. В рамках своей группы ФИО этих студентов будут уникальными.

Решение реальной задачи с использованием sqrt

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

Соотношение a2 + b2 = c2, где «a» и «b» – катеты, а «c» – гипотенуза – естественным образом требует извлекать корни при поиске неизвестной стороны. Python-а под рукой у древних греков и вавилонян не было, поэтому считать приходилось методом приближений. Жизнь стала проще, но расчет теоремы Пифагора никто не отменял и в XXI веке.

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

  1. Ваше местоположение;
  2. Центр Земли;
  3. Пиковая высота вышки;

Модель готова, приступаем к написанию кода:

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

Арифметические функции в Python

Арифметические функции используются для представления чисел в различных формах и осуществления над ними математических операций. Далее представлен перечень самых популярных арифметических функций:

  • : округление определенного числа вверх;
  • : возвращает модуль (абсолютное значение) указанного числа;
  • : округление определенного числа вниз;
  • : получение наибольшего общего делителя чисел и ;
  • : возвращает сумму всех элементов итерируемого объекта;
  • : возвращает (e^x)-1;
  • : когда значение слишком мало, вычисление может привести к значительной потери в точности. может вернуть вывод с полной точностью.

В следующем примере показано использование перечисленных выше функций:

Python

import math

num = -4.28
a = 14
b = 8

num_list =
x = 1e-4 # Малое значение x

print(‘Число:’, num)
print(‘Округление числа вниз:’, math.floor(num))
print(‘Округление числа вверх:’, math.ceil(num))
print(‘Модуль числа:’, math.fabs(num))
print(‘Наибольший общий делитель a и b: ‘ + str(math.gcd(a, b)))
print(‘Сумма элементов списка: ‘ + str(math.fsum(num_list)))
print(‘e^x (при использовании функции exp()) равно:’, math.exp(x)-1)
print(‘e^x (при использовании функции expml()) равно:’, math.expm1(x))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

importmath

num=-4.28

a=14

b=8

num_list=10,8.25,75,7.04,-86.23,-6.43,8.4

x=1e-4# Малое значение x

print(‘Число:’,num)

print(‘Округление числа вниз:’,math.floor(num))

print(‘Округление числа вверх:’,math.ceil(num))

print(‘Модуль числа:’,math.fabs(num))

print(‘Наибольший общий делитель a и b: ‘+str(math.gcd(a,b)))

print(‘Сумма элементов списка: ‘+str(math.fsum(num_list)))

print(‘e^x (при использовании функции exp()) равно:’,math.exp(x)-1)

print(‘e^x (при использовании функции expml()) равно:’,math.expm1(x))

Вывод

Python

Число: -4.28
Округление числа вниз: -5
Округление числа вверх: -4
Модуль числа: 4.28
Наибольший общий делитель a и b: 2
Сумма элементов списка: 16.029999999999998
e^x (при использовании функции exp()) равно: 0.0001000050001667141
e^x (при использовании функции expml()) равно: 0.00010000500016667084

1
2
3
4
5
6
7
8

Число-4.28

Округлениечиславниз-5

Округлениечиславверх-4

Модульчисла4.28

Наибольшийобщийделительaиb2

Суммаэлементовсписка16.029999999999998

e^x(прииспользованиифункцииexp())равно0.0001000050001667141

e^x(прииспользованиифункцииexpml())равно0.00010000500016667084

К числу других математических функций относятся:

  • : принимает два вещественных аргумента, возводит первый аргумент в степень, значением которой является второй аргумент, после чего возвращает результат. К примеру, эквивалентно выражению ;
  • : возвращает квадратный корень определенного числа.

Примеры данных методов представлены ниже:

Возведение в степень

Python

math.pow(3, 4)

1 math.pow(3,4)

Вывод

Shell

81.0

1 81.0

Квадратный корень

Python

math.sqrt(81)

1 math.sqrt(81)

Вывод

Shell

9.0

1 9.0

Шаблоны регулярных выражений

За исключением символов (+?. * ^ $ () [] {} | ), все остальные соответствуют самим себе. Вы можете избежать экранировать специальный символ с помощью бэкслеша ().

В таблицах ниже описаны все символы и комбинации символов для регулярных выражений, которые доступны в Python:

Шаблон & Описание
1 ^ — соответствует началу строки.
2 $— соответствует концу строки.
3 . — соответствует любому символу, кроме новой строки. Использование флага re.M позволяет также соответствовать новой строке.
4 — соответствует любому из символов в скобках.
5 — соответствует любому символу, кроме тех, что в квадратных скобках.
6 foo* — соответствует 0 или более вхождений “foo”.
7 bar+ —- соответствует 1 или более вхождениям “bar”.
8 foo? —- соответствует 0 или 1 вхождению “foo”.
9 bar{3} —- соответствует трем подряд вхождениям “bar”.
10 foo{3,} — соответствует 3 или более вхождениям “foo”.
11 bar{2,5} —- соответствует от 2 до 5 вхождениям “bar”.
12 a|b — соответствует либо a, либо b.
13 (foo) — группирует регулярные выражения.
14 (?imx) — временно включает параметры i, m или x в регулярное выражение. Если используются круглые скобки — затрагивается только эта область.
15 (?-imx) — временно отключает опции i, m или x в регулярном выражении. Если используются круглые скобки — затрагивается только эта область.
16 (?: foo) — Группирует регулярные выражения без сохранения совпадающего текста.
17 (?imx: re) — Временно включает параметры i, m или x в круглых скобках.
18 (?-imx: re) — временно отключает опции i, m или x в круглых скобках.
19 (?#…) — комментарий.
20 (?= foo) — совпадает со всеми словами после которых » foo».
21 (?! foo) — совпадает со всеми словами после которых нет » foo».
22 (?> foo) — совпадает со всеми словами перед которыми » foo».
23 \w — совпадает с буквенным символом.
24 \W — совпадает с не буквенным символом.
25 \s — совпадает с пробельными символами (\t, \n, \r, \f и пробелом).
26 \S — все кроме пробельных символов.
27 \d — соответствует цифрам (0-9).
28 \D — все кроме цифры.
29 \A — соответствует началу строки.
30 \Z – соответствует концу строки. Включая перевод на новую строку, если такая есть.
31 \z — соответствует концу строки.
32 \G — соответствует месту, где закончилось последнее соответствие.
33 \b — соответствует границам слов, когда поставлены внешние скобки.
34 \B — все кроме границы слова.
35 **\n,\t,\r,\f ** — соответствует новым строкам, подстрокам.
36 \1…\9 — соответствует подгруппе n-й группы.
37 \10 — соответсвуйет номеру группы. В противном случае относится к восьмеричному представлению символьного кода.

Логические операции с десятичным модулем

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

Функция match

Эта функция ищет в и поддерживает настройки с помощью дополнительного .
Ниже можно увидеть синтаксис данной функции:

Описание параметров:

Параметр & Описание
1 pattern — строка регулярного выражения ()
2 string — строка, в которой мы будем искать соответствие с шаблоном в начале строки ()
3 flags — модификаторы, перечисленными в таблице ниже. Вы можете указать разные флаги с помощью побитового OR

Функция возвращает объект при успешном завершении, или при ошибке. Мы используем функцию или объекта для получения результатов поиска.

Метод совпадения объектов и описание
1 group(num=0) — этот метод возвращает полное совпадение (или совпадение конкретной подгруппы)
2 groups() — этот метод возвращает все найденные подгруппы в tuple

Операции над числами

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

Операция Назначение
a + b Сложение a и b
a – b Разница между a и b
a * b Умножение a на b
a / b Деление a на b
a % b Остаток от деления a на b
a // b Целая часть от деления a и b
a ** b Возведение a в степень b

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

Операция Назначение
a & b Побитовое И для a и b
a | b Побитовое ИЛИ для a и b
a ^ b Исключающее ИЛИ для a и b
~a Инверсия битов для a
a << b Побитовый сдвиг влево для a на b
a >> b Побитовый сдвиг вправо для a на b

Также для более эффективной обработки числовых данных в Python были добавлены особые методы, позволяющие всего за одно действие осуществлять множество сложных операций. К наиболее популярным из них относятся методы, предназначенные для быстрого нахождения квадратного корня, модуля, а также округления числа. Чтобы воспользоваться некоторыми арифметическими функциями, необходимо подключить стандартную библиотеку math при помощи вызова . Список популярных методов представлен в данной таблице:

Метод Назначение
sqrt(a) Квадратный корень из a
log(a) Натуральный логарифм из a
fabs(a) Возвращает модуль a
round(a) Округляет a до ближайшего целого
round(a, b) Округляет a до b знаков после точки
floor(a) Округляет a до меньшего целого значения
ceil(a) Округляет a до большего целого значения
isfinite(a) Проверяет, является ли a числом
modf(a) Возвращает целую и дробную части a
sin(a) Синус угла a, указанного в радианах
cos(a) Косинус угла a, указанного в радианах
tan(a) Тангенс угла a, указанного в радианах

Функция fabs модуля math вначале пытается привести аргумент к вещественному типу (float), и только потом вычисляет модуль. Для вычисления модуля числа так же есть стандартная функция abs.

Ввод числа с клавиатуры

Для того чтобы получить числовые данные от пользователя используется стандартный метод input. Его вызов позволяет получать ввод информации с клавиатуры, который выполняется во время запуска программы на компьютере. В качестве аргумента для этого метода можно использовать строку, предлагающую пользователю ввести числовые сведения. Ниже показан пример того, как ввести в Pyhon с клавиатуры число. Переменная n получает значение и отображается на экране с помощью print:

n = input("Press n: ")
print("n = " + str(n))

Press n: 10
n = 10

Максимальное значение

Получить максимальное значение целочисленной переменной, которое поддерживается в текущей версии языка Python можно с помощью переменной sys.maxsize. Как правило, на разных компьютерах это число совпадать не будет из-за разной архитектуры процессоров. На данный момент из Python были убраны любые ограничения, касающиеся размерности вводимых величин. Вывести на экран максимальное число в Python можно следующим образом:

import sys
print(sys.maxsize)

9223372036854775807

Комплексные числа (complex)

В Python встроены также и комплексные числа:

Также для работы с комплексными числами используется также модуль cmath.

В программировании мы всегда взаимодействуем с данными, которые не являются какой-то абстрактной субстанцией. Все данные разделяются по определенному типу. На предыдущих уроках мы узнали, про строки, списки, словари и о логическом типе данных. Сегодня, поговорим о самом базовом типе данных в Python — числах.

Почему нельзя свалить все данные в одну общую кучу и не заморачиваться с каждым типом по отдельности? Допустим, мы присвоили переменной a цифру 5: a = 5. А теперь представьте, что никакого разделения по типу данных нет. Так что находится в переменной: число или строка? Если 10 — это число, то с ним можно произвести математические действия. А если это строка, то мы имеем дело с текстом и тогда Python задействует совсем другие методы.

# объединение строк (конкатенация) d = ’10’ f = ‘негритят’ d + ‘ ‘ + f ’10 негритят’

Ключевой момент: У каждого типа данных свои методы.

Цифра 100 написанная без кавычек, относится к числовому типу данных. А цифра ‘100’ в кавычках — к строковому типу. С помощью синтаксиса, мы сообщаем Python, какой у нас тип данных. Числа в Python делятся на два вида: целое число и вещественное.

9 ответов

179

Лучший ответ

выполняет целочисленное деление. .

Итак, вы вычисляете x (1/2) в первом случае x (0) во втором.

Так что это не так, это правильный ответ на другой вопрос.

07 март 2012, в 03:47
Поделиться

77

Вам нужно написать: , в противном случае выполняется целочисленное деление, а выражение возвращает .

Это поведение является «нормальным» в Python 2.x, тогда как в Python 3.x выполняется оценка . Если вы хотите, чтобы ваш код Python 2.x вел себя как 3.x w.r.t. деление писать — тогда будет оцениваться до и для обратной совместимости оценивать до .

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

07 март 2012, в 03:02
Поделиться

8

выполняет целочисленное деление в Python 2:

Если одно из чисел является поплавком, оно работает как ожидалось:

07 март 2012, в 04:03
Поделиться

5

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

03 апр. 2018, в 01:56
Поделиться

5

Что вы видите, это целочисленное деление. Чтобы получить деление с плавающей запятой по умолчанию,

Или вы можете преобразовать 1 или 2 из 1/2 в значение с плавающей запятой.

07 март 2012, в 04:32
Поделиться

1

Это может быть немного поздно ответить, но самым простым и точным способом вычисления квадратного корня является метод newton.

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

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

Например, нам нужно найти 30 квадратных корней. Мы знаем, что результат между 5 и 6.

число равно 30, а оценка — 5. Результат каждого рекурсивного вызова:

Последний результат — наиболее точное вычисление квадратного корня из числа. Это то же значение, что и встроенная функция math.sqrt().

25 янв. 2018, в 09:57
Поделиться

Возможно, простой способ запомнить: добавить точку после числителя (или знаменателя) 16 ** (1./2) # 4 289 ** (1./2) # 17 27 ** (1./3) # 3

06 апр. 2018, в 02:29
Поделиться

-1

Я надеюсь, что приведенный ниже код ответит на ваш вопрос.

25 июль 2017, в 02:17
Поделиться

-1

Вы можете использовать NumPy для вычисления квадратных корней массивов:

10 фев. 2017, в 19:28
Поделиться

Ещё вопросы

  • 304Что такое Python-эквивалент PHP var_dump ()?
  • 324Любимые советы и особенности Django?
  • 214Django — Как переименовать поле модели, используя South?
  • 157Django: перенаправление на предыдущую страницу после входа в систему
  • 135Как получить доступ к элементу словаря в шаблоне Django?
  • 115Получение параметров из URL
  • 116Как отобразить текущий год в шаблоне Django?
  • 99Как вы сериализуете экземпляр модели в Django?
  • 93Как мне упаковать приложение на python, чтобы оно могло быть установлено pip?
  • 624Как я могу проверить значения NaN?

Целые числа (int)

Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

x + y Сложение
x — y Вычитание
x * y Умножение
x / y Деление
x // y Получение целой части от деления
x % y Остаток от деления
-x Смена знака числа
abs(x) Модуль числа
divmod(x, y) Пара (x // y, x % y)
x ** y Возведение в степень
pow(x, y) x y по модулю (если модуль задан)

Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).

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

Над целыми числами также можно производить битовые операции

x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x > y Битовый сдвиг вправо

x

Инверсия битов

Дополнительные методы

int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.

int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.

classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращает число из данной строки байтов.

Системы счисления

Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:

  • int(, ) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
  • bin(x) — преобразование целого числа в двоичную строку.
  • hex(х) — преобразование целого числа в шестнадцатеричную строку.
  • oct(х) — преобразование целого числа в восьмеричную строку.

Комплексные числа[править]

Пусть x2 = 2. Большинство из нас будут способны найти первый корень x=2{\displaystyle x={\sqrt {2}}}. Более продвинутые в математике заметят, что имеется и второй корень x=−2{\displaystyle x=-{\sqrt {2}}}. Но встретившись с выражением x2 = -2 решение смогут найти лишь немногие люди, знакомые с комплексными числами. Если вы только собираетесь стать ученым, настоятельно советуем познакомиться сейчас с этими замечательными числами перед тем, как изучить дальнейшие примеры, на которых вы сможете проверить свои новые знания.

Комплексная арифметика в Pythonправить

Python поддерживает расчеты с комплексными числами. Мнимая часть записывается через j, вместо i в математике. Комплексное число 2-3i соответственно будет записано как 2-3j. Ниже показан простой сеанс работы с комплексными числами и примеры простой комплексной арифметики:

>>> u = 2.5 + 3j       # создаем комплексное
>>> v = 2              # а это целое
>>> w = u + v          # комплексное + целое
>>> w
(4.5+3j)

>>> a = -2
>>> b = 0.5
>>> s = a + b*1j       # complex из двух float
>>> s = complex(a, b)  # другой способ
>>> s
(-2+0.5j)
>>> s*w                # complex*complex
(-10.5-3.75j)
>>> sw                # complex/complex
(-0.25641025641025639+ 0.28205128205128205j)

Кроме того объект типа complex легко может быть разложен на реальную и мнимую части и для него может быть найдено сопряженное (conjugate) число:

>>> s.real
-2.0
>>> s.imag
0.5
>>> s.conjugate()
(-2-0.5j)

Комплексные функции Pythonправить

Для работы с функциями комплексных переменных следует использовать специальную библиотеку — cmath:

>>> from cmath import sin, sinh
>>> r1 = sin(8j)
>>> r1
1490.4788257895502j
>>> r2 = 1j*sinh(8)
>>> r2
1490.4788257895502j

Классификация люстр и критерии выбора

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector