числовые типы данных
- Целочисленный тип данных
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.
Не путайте операцию преобразования и округления. Для округления чисел с плавающей точкой используются дополнительные команды. О них расскажем позже.