Операция|Описание
--|--
x[i]\
x(...)|получение `i`-го элемента последовательности: `x_i`, нумерация с 0\
вызов функции
``x**y``|возведение в степень: `x^y`
+x\
-x\
~x|`x`\
смена знака: `-x`\
поразрядное отрицание: `-(x+1)`
x*y\
x@y\
x/y\
x//y\
x%y | умножение\
матричное умножение (для типов, определяемых программистом)\
деление\
целочисленное деление: `\|__ x//y __\|` для `y>0` и `\|~ x//y ~\|` для `y<0` ") \
остаток от деления: `x mod y` 
x+y\
x-y|сложение\
вычитание
x<<y\
x>>y|сдвиг битов влево: `x*2^y`\
сдвиг битов вправо: `floor(x//(2^y))`
``x&y``|поразрядная операция И
``x^y``|поразрядная операция исключающая ИЛИ: `x o+ y`
x\|y|поразрядная операция ИЛИ
x in y, x not in y\
x is y, x is not y\
x<y, ``x<=y``, x>y, ``x>=y``, ``x!=y``, x==y|x есть/нет в коллекции/последовательности y\
x ссылается на тот же объект, что и y\
сравнения, можно комбинировать несколько сравнений: ``x==y==z``, ``x<=y<z``
not x|логическое НЕ
x and y|логическое И
x or y|логическое ИЛИ
x if y else z| если y, то результат x иначе результат z
x:=y|присваивание внутри выражений
Операции +, - *, @, /, //, %, **, >>, <<, &, ^, | можно комбинировать с присваиванием:
``x+=y`` выполняется как ``x=x+(y)``, где y -- произвольное выражение.
```run-python
x=10
x+=2
print(x) # 12
```
Математические функции определяются в модулях math и cmath, несколько функций являются встроенными. Для использования модулей нужно написать
```python
import math
# появляется переменная math, содержащая константы и функции из модуля math
print(math.sqrt(math.pi))
```
```python
from math import sqrt,pi
from cmath import sqrt as csqrt
# появляются переменные sqrt=math.sqrt, pi=math.pi, csqrt=cmath.sqrt
print(sqrt(pi))
print(сsqrt(-1.0)) # 1j
```
```python
from math import *
# появляются переменные для всех функций и констант из math
# делать from cmath import * не рекомендуется, так как одноименные функции из math будут заменены
print(sqrt(pi))
```
Функция|Описание|Пример|Результат
--|--|--|--
**константы math**|_
pi|Число `pi`|math.pi|3.141592653589793
e|Число `e=2.7182818...`|math.e|2.718281828459045
inf| `+oo`|math.inf|inf
nan| не число, если результат не может быть вычислен (inf-inf)|math.nan|nan
**встроенные**|_
abs(x)| `\|x\|` абсолютная величина, модуль числа|abs(-2.5)|2.5
round(x)| округление к ближайшему целому|round(3.7)|4
int(x)| преобразование в целое число|int(3.7)|3
float(x)| преобразование в число с плавающей точкой|float(3)|3.0
divmod(x,y)|кортеж из целого частного и остатка от деления `x` на `y`|divmod(25, 7)|(3, 4)
max(x,y)| максимум, можно указать больше аргументов или последовательность|max(5, 12, 4)|12
min(x,y)| минимум, можно указать больше аргументов или последовательность|min(5, 12, 4)|4
sum(p)| сумма последовательности|sum([5, 12, 4])|21
только в **cmath**|_
phase(c)|угол|cmath.phase(0+1j)|1.5707963267948966 # `pi//2`
polar(c)|перевод в полярные координаты, кортеж из радиуса и угла|cmath.polar(1+1j)|(1.4142135623730951, 0.7853981633974483) # `(sqrt(2),pi//4)`
rect(r,phi)|перевод в декартовы координаты|c=cmath.rect(1,math.pi/6)\
x=c.real\
y=c.imag | 0.8660254037844387+0.5j
в **math** и **cmath**|_
sin(x) | `sin x`, `x` в радианах|math.sin(math.pi/6)|0.5
cos(x) | `cos x`|math.cos(math.pi/6)|0.8660254037844387 # `sqrt(3)//2`
tan(x) | `"tg"\ x`|math.tan(math.pi/6)|0.5773502691896257 # `sqrt(3)//3`
asin(x) | `arcsin x`|math.asin(0.5)|0.5235987755982989 # `pi//6`
acos(x) | `arccos x`|math.acos(0.8660254037844387)|0.5235987755982989 # `pi//6`
atan(x) | `"arctg"\ x`, результат в `[ -pi/2; +pi/2 ]`|
exp(x) | `e^x`|math.exp(1.0)|2.718281828459045
log(x) | `ln x`|math.log(math.e**2)|2.0
log(x,b) | `log_b x`|math.log(1024,2)|10.0
log10(x) | `"lg"\ x`|math.log10(1000)|3.0
sqrt(x) | `sqrt x`|math.sqrt(2)|1.4142135623730951
только в **math**|_
ceil(x) | `\|~ x ~\|` потолок, "округление" вверх|math.ceil(3.1)\
math.ceil(-3.1)|4\
-3
floor(x) | `\|__ x __\|` пол, "округление" вниз|math.floor(3.1)\
math.floor(-3.1)|3\
-4
trunc(x) | целая часть числа `[x]`|math.trunc(3.1)\
math.trunc(-3.1)|3\
-3
fmod(x,y) | остаток от деления `x` на `y` для чисел с плавающей точкой: `x - [x//y] * y` \
дробная часть числа `{x}` может вычислена как ``fmod(x,1.0)`` или ``x%1``|math.fmod(2.5, 0.7)|0.4
atan2(y,x) | `"arctg"\ y/x`, результат в `[ -pi; +pi ]`|math.atan2(-2, 0.5)|-1.3258176636680326 # cmath.phase(0.5-2j)
degrees(x)| перевод в градусы | math.degrees(math.pi/6)|30.0
radians(x)| перевод в радианы|math.radians(30)|0.5235987755982988
exp2(x) | `2^x`|math.exp2(10)|1024.0
log2(x) | `log_2 x`|math.log2(1024)|10.0
cbrt(x) | `root 3 x`|math.cbrt(2)|1.259921049894873
hypot(x,y) | `sqrt{x^2+y^2}`, можно указать 3 и больше координат|math.hypot(1,2)|2.23606797749979 # `sqrt(5)`
dist(p,q) | расстояние между 2 точками|math.dist((5,3),(4,1))|2.23606797749979
sumprod(p,q) | скалярное произведение|math.sumprod((5,3),(4,1))|23
comb(n,k)|количество сочетаний `C_n^k={n!}/(k!(n-k)!)` или `((k),(n))`|math.comb(4,2)|6
perm(n,k)|количество размещений `A_n^k={n!}/((n-k)!)`|math.perm(4,2)|12
factorial(n)|количество перестановок `n!`|math.factorial(4)|24
isqrt(n)|`floor(sqrt(n))`|math.isqrt(1000)|31
gcd(a,b)|НОД(a,b), можно указать больше аргументов|math.gcd(150, 12)|6
lcm(a,b)|НОК(a,b), можно указать больше аргументов|math.lcm(150, 12)|300