Числа в Python

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

Целые числа

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

i = 42 # целое число
print("i = " + str(i))
print(type(i))

i = 42
<type 'int'>

Вещественные числа

Для того чтобы записать действительное число в Python есть числа с плавающей точкой. Работая в программе с подобными величинами, можно получать более точные данные при арифметических подсчетах. Чтобы инициализировать объект, который содержит вещественное число, необходимо присвоить ему значение, где целая и дробная части разделены символом точки. В данном примере показано создание переменной f:

f = 3.14 # вещественное число
print("f = " + str(f))
print(type(f))

f = 3.14
<type 'float'>

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

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

c = 1 + 2j # комплексное число
print("c = " + str(c))
print(type(c))

c = (1+2j)
<type 'complex'>

Можно получить действительную и мнимую часть чисел отдельно. Для этого следует использовать real и image:

c = (1+2j)
print(c.real)
print(c.imag)

1.0
2.0

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

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

b = 0b110101 # число в двоичной системе
o = 0o342 # число в восьмеричной системе
x = 0x1FE9 # число в шестнадцатеричной системе
print("b = " + str(b))
print("o = " + str(o))
print("x = " + str(x))

b = 53
o = 226
x = 8169

Приведение типов

Используя стандартные средства языка Python, можно достаточно легко менять типовую принадлежность практически любой переменной. Для этого существуют методы, такие как int, float, complex, bin, oct, hex. Три последние функции позволяют перевести число либо переменную в десятичную, восьмеричную и шестнадцатеричную систему соответственно. Следующий фрагмент кода демонстрирует работу всех шести вышеописанных методов:

i = int(67.23) # вещественное число усекается до целого
f = float('1304') # строка становится вещественным числом
c = complex(2, 6) # формируется комплексное число
b = bin(42) # перевод числа в двоичную систему
o = oct(993) # перевод числа в восьмеричную систему
x = hex(4152) # перевод числа в шестнадцатеричную систему
print("i = " + str(i))
print("f = " + str(f))
print("c = " + str(c))
print("b = " + str(b))
print("o = " + str(o))
print("x = " + str(x))

i = 67
f = 1304.0
c = (2+6j)
b = 0b101010
o = 01741
x = 0x1038

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

Манипуляции над числовыми значениями в языке программирования 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 при помощи вызова import 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

Заключение

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