![]() |
![]() |
Приоритеты операций
Операция | Описание |
---|---|
x[i] x(…) |
получение i-го элемента последовательности: xi, нумерация с 0 вызов функции |
x**y |
возведение в степень: xy |
+x -x ~x |
x смена знака: -x поразрядное отрицание: -(x+1) |
x*y x@y x/y x//y x%y |
умножение матричное умножение (для типов, определяемых программистом) деление деление нацело остаток от деления |
x+y x-y |
сложение вычитание |
x<<y x>>y |
сдвиг битов влево: x⋅2y сдвиг битов вправо: ⌊x/(2y)⌋ |
x&y |
поразрядная операция И |
x^y |
поразрядная операция исключающая ИЛИ: x⊕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=[10,11,12]
print(x[1]) # 11
print(5/2) # 2.5
print(5//2) # 2
print(5%2) # 1
print(2 in {1,2,3}) # True
print(2 in x) # False
Операции +, - , @, /, //, %, *, >>, <<, &, ^, | можно комбинировать с присваиванием:
x+=y
выполняется как x=x+(y)
, где y – произвольное выражение.
x=10
x+=2
print(x) # 12
Математические функции определяются в модулях math и cmath, несколько функций являются встроенными. Для использования модулей нужно написать
import math
# появляется переменная math, содержащая константы и функции из модуля math
print(math.sqrt(math.pi))
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
from math import *
# появляются переменные для всех функций и констант из math
# делать from cmath import * не рекомендуется, так как одноименные функции из math будут заменены
print(sqrt(pi))
Функция | Описание | Пример | Результат |
---|---|---|---|
константы math | |||
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 |