числовые типы данных
- Целочисленный тип данных
int
- Числа с плавающей точкой
float
- Встроенные функции
max()
, min()
, abs()
- Решение задач
Аннотация. Числовые типы данных. Вспомним особенности работы с целыми числами, научимся работать с числами с плавающей точкой. Изучим три встроенные функции для работы с числами max
, min
, abs
.
Целочисленный тип данных
Целые числа в Python представлены типом данных int
(сокращение int происходит от слова integer). Для определения целого числа типа int
используется последовательность цифр от 0 до 9.
Явно указанное численное значение в коде программы называется целочисленным литералом. Когда Python встречает целочисленный литерал, он создает объект типа 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
Числа с плавающей точкой
Наравне с целыми числами в Python есть возможность работы с дробными (вещественными) числами. Так, например, числа , – являются вещественными и целого типа int
недостаточно для их представления.
Дробные (вещественные) числа в информатике называют числами с плавающей точкой.
Для представления чисел с плавающей точкой в Python используется тип данных float
.
e = 2.71828
pi = 3.1415
В Python, когда вы используете операцию деления /
, результат всегда будет числом с плавающей точкой, даже если оба числа являются целыми. Вот пример:
print(4 / 2)
В отличие от математики, где разделителем является запятая, в информатике используется точка при записи чисел с плавающей точкой.
Преобразование строки к числу с плавающей точкой
Для преобразования строки к числу с плавающей точкой мы используем команду 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
Неявное преобразование. Любое целое число (тип 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
.
Не путайте операцию преобразования и округления. Для округления чисел с плавающей точкой используются дополнительные команды. О них расскажем позже.