Числовые типы данных

28.03.2022 1 Автор : Дмитрий Николаевич
Числовые типы данных

Целочисленный тип данных

Целые числа представлены типом данных int. Сокращение int происходит от слова integer. Для определения целого числа типа int используется последовательность цифр от 0 до 9.
Явно указанное численное значение в коде программы называется целочисленным литераломКогда в коде встречается целочисленный литерал, создается объект типа int, хранящий указанное значение.
n = 17 # Целочисленный литерал
m = 7 # Целочисленный литерал
Целочисленный тип данных int используют не только потому, что он встречается в реальном мире, но и потому что он естественным образом возникает при создании большинства программ.

Преобразование строки в целое число

Команда int() используется для преобразования строки в целое число.
num = int(input() # Преобразование считанной строки в целое число

Не обязательно использовать input() для преобразования строки в целое число.

Следующий код преобразует строку 12345 в целое число:

n = int('12345') # Преобразование строки в целое число

Обратите внимание, что если строка не является числом, то при преобразовании может возникнуть ошибка.

Целочисленные операторы

Python предоставляет четыре основных арифметических оператора для работы с целыми числами, а также три дополнительных (% для остатка, // для целочисленного деления и ** для возведения в степень).

Следующий код демонстрирует все целочисленные операторы:

a = 13
b = 7

total = a + b
diff = a – b
prod = a * b
div1 = a / b
div2 = a // b
mod = a % b
exp = a ** b

print(a, '+', b, '=', total)
print(a, '-', b, '=', diff)
print(a, '*', b, '=', prod)
print(a, '/', b, '=', div1)
print(a, '//', b, '=', div2)
print(a, '%', b, '=', mod)
print(a, '**', b, '=', exp)

Результат выполнения программы будет таков:

13 + 7 = 20
13 - 7 = 6
13 * 7 = 91
13 / 7 = 1.8571428571428572
13 // 7 = 1
13 % 7 = 6
13 ** 7 = 62748517

Обратите внимание, что при обычном делении получается число, не являющееся целым. Деление на ноль может привести к ошибке.

Длинная арифметика

Отличительной особенностью Python является неограниченность целочисленного типа данных. По факту размер числа зависит только от наличия свободной памяти на компьютере. Это отличает Python от таких языков как C++, C, C# и Java где переменные целого числа типа данных имеют ограничение. Например, в языке C# диапазон целых чисел ограничен от -263 до 263 – 1.

atom = 10 ** 80 # Количество атомов во Вселенной
print('Количество атомов =', atom)

Результатом выполнения кода будет число с 81 цифрой:

Количество атомов = 100000000000000000000000000000000000000000000000000000000000000000000000000000000

Символ разделитель

Для удобного чтения чисел можно использовать символ нижнего подчеркивания _.
num1 = 25_000_000
num2 = 25000000
print(num1)
print(num2)

Результатом выполнения кода будет:

25000000
25000000

Числа с плавающей точкой

Наравне с целыми числами есть возможность работы с дробными (вещественными) числами. Так, например, числа 2/3, √2, π – являются вещественными и целого типа int недостаточно для их представления.

Дробные (вещественные) числа в информатике называют числами с плавающей точкой.

Для представления чисел с плавающей точкой используется тип данных float.
e = 2.71828 # Литерал с плавающей точкой
pi = 3.1415 # Литерал с плавающей точкой

Обратите внимание, что в отличие от математики, где разделителем является запятая, в информатике используется точка.

Преобразования строки к числу с плавающей точкой

float() используется для преобразования строки к числу с плавающей точкой:
num = float(input()) # Преобразование считанной строки в число с плавающей точкой
input() необязательно использовать для того, чтобы преобразовать строку к числу с плавающей точкой.
Ниже представленная строчка кода преобразует строку 1.2345 к числу с плавающей точкой.
n = float('1.2345')  # Преобразование строки к числу с плавающей точкой

Обратите внимание, что если строка не является числом, то при преобразовании может возникнуть ошибка.

Арифметические операторы

В Python есть четыре основных оператора для работы с числами с плавающей точкой (+, -, *, /) и дополнительный (**) для возведения в степень.

Представленный ниже код продемонстрирует все целочисленные операторы.

a = 13.5
b = 2.0

total = a + b
diff = a - b
prod = a * b
div = a / b
exp = a ** b

print(a, '+', b, '=', total)
print(a, '-', b, '=', diff)
print(a, '*', b, '=', prod)
print(a, '/', b, '=', div)
print(a, '**', b, '=', exp)

Результат данной программы будет таков:

13.5 + 2.0 = 15.5
13.5 - 2.0 = 11.5
13.5 * 2.0 = 27.0
13.5 / 2.0 = 6.75
13.5 ** 2.0 = 182.25

Обратите внимание, что деление на ноль может привести к ошибке.

Неявное преобразование. Любое целое число (тип int) можно использовать там, где ожидается число с плавающей точкой (тип float), поскольку при необходимости Python автоматически преобразует целые числа в числа с плавающей точкой.

Явное преобразование. Число с плавающей точкой нельзя неявно преобразовать в целое число. Для такого преобразования необходимо использовать явное преобразование с помощью команды int().

num1 = 17.89
num2 = -13.56
num3 = int(num1)
num4 = int(num2)
print(num3)
print(num4)

Результат выполнения данного кода будет:

17
-13

Обратите внимание, что преобразование чисел с плавающей точкой в целое производится с округлением в сторону нуля, то есть 

int(1.7) = 1, int(-1.7) = -1.

Не путайте операцию преобразования и округления. Для округления чисел с плавающей точкой используются дополнительные команды.

Задавайте свои вопросы в комментарии или в форме обратной связи.