Все числовые типы, кроме сложных, поддерживают следующие операции согласно их приоритетам выполнения:
x + y
x
и у
x - y
x
и у
x * y
x
и у
x / y
x
и у
x // y
x / y
с округлением результата до ближайшего целого в меньшую сторону. Операцию называют "целочисленным делением".int
.1 // 2
равно 0
,(-1) // 2
равно -1
,1 // (-2)
равно -1
,(-1) // (-2)
равно 0
.x % y
x / y
.-x
x
.+x
x
останется без изменений.abs(x)
x
.int(x)
x
преобразуется в целое число int
.0
до 9
или любой эквивалент Юникода.math.floor()
и math.ceil()
float(x)
x
преобразуется в число с плавающей точкой float
.0
до 9
или любой эквивалент Юникода.'nan'
- не число и 'inf'
- положительная или отрицательная бесконечность, с необязательным префиксом +
или -
.complex(real, image)
real
, мнимой частью image
.c.conjugate()
с
.divmod(x, y)
(x // y, x % y)
.pow(x, y)
x
в степени у
. Python определяет 0 ** 0
как равное 1
, как это обычно бывает для языков программирования.x ** y
x
в степени у
. Python определяет pow(0, 0)
как равное 1
, как это обычно бывает для языков программирования.Внимание!. Комплексным числам (тип complex
) недоступны операции: //
- деление без остатка , %
- остаток от деления, int()
, float()
, divmod()
.
Синтаксис арифметических выражений прост. Операторы +
, -
, *
и /
работают так же, как и в большинстве других языков программирования, круглые скобки ()
могут быть использованы для группировки выражений.
>>> 2 + 2 # 4 >>> 50 - 5*6 # 20 >>> (50 - 5*6) / 4 # 5.0 # деление всегда возвращает тип float >>> 8/5 # 1.6
Целые числа, например 2, 4, 20 имеют тип int
, числа с дробной частью, например 5.0, 1.6 имеют тип float
.
Деление /
всегда возвращает тип float
(число с плавающей запятой). Для получения целой части числа, полученного в результате деления (floor division
- округление результата до ближайшего целого в меньшую сторону) вы можете использовать оператор //
, для расчета остатка вы можете использовать оператор %
# классическое деление >>> 17 / 3 # 5.666666666666667 # целочисленное деление >>> 17 // 3 # 5 # возвращает остаток от деления >>> 17 % 3 # 2
С помощью Python можно использовать оператор **
для вычисления степеней
# 5 в квадрате >>> 5 ** 2 # 25 # 2 в степени 7 >>> 2 ** 7 # 128
Знак равенства =
используется для присвоения значения переменной.
>>> width = 20 >>> height = 5 * 9 >>> width * height # 900
Если переменная не определена, т. е. ей не присвоено значение, попытка использовать ее приведет к ошибке.
# переменная 'x' не определена # ей не присвоено значение, а значит # Python ничего про нее не знает >>> x # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # NameError: name 'x' is not defined
Существует полная поддержка операций с плавающей запятой, операции с числами смешанного типа преобразуют результат в число с плавающей точкой.
>>> 4 * 3.75 - 1 # 14.0
В интерактивном режиме последнее печатное выражение присваивается переменной _
- символ подчеркивания. Это означает, что при использовании Python в качестве калькулятора несколько проще продолжить вычисления, например:
>>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax # 12.5625 >>> price + _ # 113.0625 >>> round(_, 2) # 113.06
Переменная _
должна рассматриваться как доступная только для чтения. Не присваивайте ей явно значение, иначе вы создадите независимую локальную переменную с тем же именем, маскируя встроенную переменную с ее магическим поведением. Эта магическая переменная нередко используется в коде для скрытия неиспользуемых данных.
client = [(1, 'shopkeeper', 'Michael Palin'), (2, 'client', 'John Cleese'), (3, 'sketch', 'Cheese Shop Sketch')] for num, _, name in client: print(num, name) # 1 Michael Palin # 2 John Cleese # 3 Cheese Shop Sketch
Помимо int
и float
, Python поддерживает другие типы чисел, такие как Decimal
и Fraction
. Python также имеет встроенную поддержку комплексных complex
чисел и использует суффикс j или J для обозначения мнимой части, например, 3+5j
.