Числовые типы данных в Питоне
Содержание:
- Системы счисления в Питоне
- Целые числа в Питоне
- Вещественные числа в Питоне
- Комплексные числа в Питоне
Каждый язык программирования имеет свои типы числовых данных, а также методы и операции для работы над ними. Не волнуйтесь: среди программистов далеко не все являются математическими гениями. Если бы все были математическими гениями, то не писали бы глючных веб-приложений, и могли ездить на дорогих гоночных автомобилях.
Числовой тип данных относится к встроенному типу данных в Python. Числа, используемые в Питоне, почти так же, как и в обычной математике, подразделяются на целые, вещественные и комплексные. И если с двумя первыми из них более менее ясно, то с комплексными нужно сделать небольшой экскурс и практику. Хотя практика у нас в курсе будет и по всем остальным системам счисления. В самом начале кратко пробежимся по системам счисления, а затем перейдем к определению и классификации числовых типов данных на Питоне.

В этом языке программирования не нужно изначально определять типы переменных. Сразу хочется сказать, что Питон динамически определяет типы переменных. Это означает, что если у вас переменная была изначально целочисленная, то потом в результате выполнения программы она может стать, к примеру, вещественной. В каких-то случаях удобно, в каких-то нет.
Системы счисления в Питоне
В компьютере числа могут быть представлены в нескольких системах счисления. В жизни и при решении задач мы с вами пользуемся десятичной системой счисления.
Пример представления одного и того же числа в разных системах счисления.
1210=11002=148=C16
Как вы знаете, в компьютере используется, прежде всего, двоичная система счисления. Поэтому, понимание подобных систем очень важно для программирования.
Существуют определённые правила преобразования чисел из одной системы счисления в другую, об этом вы сможете узнать в одном из наших уроков. И если в других языках программирования требуется писать специальные программы преобразования, чтобы представить такие числа, то в Питоне всё гораздо проще. Для этих целей в языке Python выделено несколько полезных и простых функций:
- int([x], [основание системы счисления]) - преобразование числа x к целочисленному типу в десятичной системе счисления. По умолчанию задана система счисления десятичная, но можно основание от 2 до 36.
- bin(x) - преобразование целого числа в двоичную строку.
- hex(х) - преобразование целого числа в шестнадцатеричную строку.
- oct(х) - преобразование целого числа в восьмеричную строку.
Целые числа в Питоне
Что такое целые числа? Во-первых, это ряд натуральных чисел - 1,2,3, и т.д. Но также это и ноль, и все отрицательные числа без дробной части.
Тип целочисленных данных в Питоне похож на все остальные языки программирования, однако при вычислении может занимать очень много места, если этого требует операция. Например, возведение числа в очень большую степень. Поэтому целые числа могут быть очень большими.
В Питоне 3 зарезервирован лишь один вида целого числового типа int, в отличие от предыдущей версии Питона
int (простое целое число) Они имеют 32-битную точность (или допустимый диапазон от -2147483648 до +2147483647),
Функция int() отбрасывает дробную часть числа, а не округляет его.
x = 13.11
x=int(x)
print("x=",x)
Результат выполнения:
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>>>
x= 13
>>>
Функция int() «округляет» отрицательные числа в сторону увеличения. Она не возвращает целую часть числа.
x = -13.81
x=int(x)
print("x=",x)
Результат выполнения:
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>>>
x= -13
>>>
Вещественные числа в Питоне
Что такое вещественные числа? Обычно, в книгах ничего не поясняя, говорят, что это числа с плавающей точкой: -0.2, 0.0, 3.14159265 и т.д. Откуда взялась эта плавающая точка?
Вещественными числами называют объединенные множества всех дробных и иррациональных чисел.
Обратите внимание, что в математике мы должны использовать "плавающую запятую". Т.е. пишем число, которое имеет дробную часть в виде числом с запятой, как 0,89 или 3,0. В питоне, как и во множестве других языков программирования, вместо запятой используют для разделения целой и дробной части не запятую, а точку.
Точность чисел с плавающей точкой равна 15 десятичным знакам в дробной части. Из-за этой особенности представления в компьютере вещественные числа неточны, что иногда приводит к ошибкам:
a=123.12
b=123.122
print(a+b)
Результат выполнения:
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
246.24200000000002
Чтобы избежать ошибки нужно принудительно округлить результат, либо отбросить последние знаки после запятой.
a=123.12
b=123.122
print(round(a+b,3))
Результат выполнения:
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
246.242
Комплексные числа в Питоне
Этот тип данных стоит особняком. В школьном курсе математики про комплексные числа написано тоже мало. Однако такие числа нашли применение при описании реальных процессов. К примеру, электрического поля в пространстве.
В общем виде, в математике, комплексное число записывается так:
z=x+iy
, где x и y — вещественные числа, i — мнимая единица (величина, для которой выполняется равенство: i2 = ? 1 . Множество комплексных чисел обычно обозначается символом C.
Квадратный корень числа -1 записывается в виде (0, 1j). Умножение комплексных чисел выполняется согласно следующему правилу: (a,b)(c,d) = (ac-bd, ad+bc)
x = 1 + 1j
s=x*x
print("x=",s)
Результат вычисления
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>>>
x= 2j
>>>
Всякое комплексное число имеет реальную и мнимую части.
В Питоне любое число можно преобразовать в комплексное с помощью функции complex().
Пример преобразования числа
Python 3.6.0 (v3.6.0) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
========= RESTART: D:/progs/python/complex.py ========
>>> complex(67)
(67+0j)
>>>
Чтобы задать полную форму этого числа необходимо использовать сразу два аргумента этой функции.
a=complex(67, 34)
print(a)
Примеры вычислений числовых значений комплексных чисел
x = complex(1, 3)
y = complex(2, 4)
print("x=", x)
print("y=",y)
z = x + y
print("z=",z)
z = x - y
print("z=",z)
z = x*y
print("z=",z)
z = x/y
print("z=",z)
print("/n")
print(x.conjugate()) # Сопряжённое число числа x
print(x.imag) # Мнимая часть числа x
print(x.real) # Действительная часть числа x
Смотрим результат вычислений
Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
x= (1+3j)
y= (2+4j)
z= (3+7j) - сумма комплексных чисел
z= (-1-1j) - разность комплексных чисел
z= (-10+10j) - произведение комплексных чисел
z= (0.7+0.1j) - результат деления комплексных чисел
(1-3j) - Сопряжённое число числа x
3.0 - Мнимая часть числа x
1.0 -Действительная часть числа x
Итак, мы с вами изучили, какие существуют числовые типы данных для Питона версии 3. Если вы думаете, что я пропустил ещё один целочисленный тип под названием long, тот тут нет моей вины. Дело в том, что он используется только во второй версии Питона.
Более подробно с вычислениями в Питоне вы познакомитесь в одном из наших уроков, а также при решении примеров.
Дополнительные возможности оператора вывода Как в Питоне запустить Черепашку?