- Числа в Python (FAQ)
- Целые числа (int)
- Вещественные числа (float)
- Комплексные числа (complex)
- Операции с числами
- Является ли переменная числом
- Арифметические операции
- Сравнение чисел
- Преобразования
- Ввод чисел
- Вывод чисел
- Другие полезные функции
- Работа с числами в Python
- Целые и числа с плавающей точкой в Python
- Создание int и float чисел
- Арифметические операции над целыми и числами с плавающей точкой
- Сложение
- Вычитание
- Умножение
- Деление
- Деление без остатка
- Остаток от деления
- Возведение в степень
- Комплексные числа
Числа в Python (FAQ)
Числа в Python (как и в других языках программирования) чрезвычайно простое понятие. В Python все переменные представляют собой объекты и размещаются в динамической памяти.
Базовый набор Python содержит следующие типы чисел:
- целые ( int );
- вещественные ( float ) [с десятичной точкой];
- комплексные ( complex ) [состоят из действительной и мнимой части].
Над числами в Python можно выполнять самые обычные математические операции: сложение ( + ), вычитание ( — ), возведение в степень ( ** ) и т.д.
Целые числа (int)
В Python любое число, состоящее из десятичных цифр без префикса, интерпретируется как десятичное число типа int .
>>> 0 0 >>> 20 20 >>> -20 -20 >>> type(20) >>> 100 + 20 120
Целые числа в Python представлены только одним типом — PyLongObject , реализация которого лежит в longobject.c , а сама структура выглядит так:
Любое целое число состоит из массива цифр переменной длины, поэтому в Python 3 в переменную типа int может быть записано число неограниченной длины. Единственное ограничение длины — это размер оперативной памяти.
>>> 134523345234252523523478777 ** 2 18096530413013891133013347014216107772438771969415729
Целые числа могут записываться не только как десятичные, но и как двоичные, восьмеричные или шестнадцатеричные. Для этого перед числом нужно написать символы:
- 0b (0B) – для двоичного представления;
- 0o (0O) – для восьмеричного представления;
- 0x (0X) – для шестнадцатеричного представления.
Вещественные числа (float)
Еще такие числа называют числами с плавающей точкой . Это числа, содержащие точку (десятичный разделитель) или знак экспоненты.
>>> 1.5 1.5 >>> type(1.5) >>> 3. 3.0 >>> .5 0.5 >>> .4e7 4000000.0 >>> type(.4e7) >>> 4.1e-4 0.00041
Числа типа float — неточны (из-за представления чисел с плавающей запятой в компьютере).
>>> 0.3 + 0.3 + 0.3 + 0.1 0.9999999999999999
Информацию о точности и внутреннем представлении float для вашей системы можно получить из sys.float_info
>>> import sys >>> sys.float_info sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Если нужна высокая точность обычно используют модули Decimal и Fraction.
Об ограничениях и подводных камнях в работе с числами с плавающей точкой описано тут .
Комплексные числа (complex)
Комплексные числа представляют собой пару значений типа int или float , и имеют вид +j .
Отдельные части комплексного числа доступны через атрибуты real и imag
>>> num = 1.1+2j >>> num.real, num.imag (1.1, 2.0)
Операции с числами
Является ли переменная числом
Любую переменную можно проверить на тип (int, float или complex):
n = 10 >>> if type(n) == int: print(«This is int») This is int
Если вы хотите проверить, находится ли в строке число, воспользуйтесь методом isdigit()
>>> string = «404» >>> string.isdigit() True
Однако стоит помнить, что метод isdigit() не работает для отрицательных чисел и чисел с плавающей точкой.
Также для проверки на число, можно написать собственную функцию:
>>> def isInt(value): try: int(value) return True except ValueError: return False >>> isInt(123) True >>> isInt(«qwerty») False >>> isInt(«123») True >>> isInt(«-123») True >>> isInt(«123.2») False
Арифметические операции
- x + y — сложение;
- x — y — вычитание;
- x * y — умножение;
- x / y — деление;
- x // y — целочисленное деление;
- x % y — остаток от деления;
- x ** y — возведение в степень;
- -x — смена знака;
- abs(x) — модуль числа;
- divmod(x, y) — возвращает кортеж из частного и остатка от деления x на y;
- pow(x, y[, z]) — возведение числа в степень (z — деление по модулю);
- round(x[, ndigits]) — округление числа (ndigits — знаки после запятой).
Сравнение чисел
- x == y — равно;
- x != y — не равно;
- x > y — больше;
- x < y — меньше;
- x >= y — больше или равно;
- x
Преобразования
- int(x) — преобразование в целое число int ;
- float(x) — преобразование в число с плавающей точкой float ;
- complex(x) — преобразование в комплексное число complex ;
- bin(x) — целое числа в двоичную строку;
- oct(x) — целое число в восьмеричную строку;
- hex(х) — целое число в шестнадцатеричную строку;
- [int(x) for x in str(123)] — перевод целого числа 123 в список цифр этого числа;
- int(».join(str(digit) for digit in [1,2,3])) — перевод списка цифр [1,2,3] в целое число 123;
- str(x) — число в строку;
Ввод чисел
Для ввода данных в программу на языке Python используется функция input() . Эта функция считывает то что вы ввели на клавиатуре, и записывает эти данные в переменную в виде одной строки. После этого, перевести строку в число можно простыми функциями int() , float() или complex() .
Если нужен список чисел, введите несколько чисел через пробел и выполните:
my_list = [int(x) for x in input().split()] print(my_list) > [1, 2, 3]
Вывод чисел
Для вывода числа используйте print() :
>>> print(1) 1 >>> print(-1.2) -1.2 >>> print(1, 3, 4) 1 3 4
На практике возникают ситуации, когда нужно вывести число вместе со строкой (например пояснить, что означает число). Существует несколько вариантов сделать это:
>>> print(«int variable = » + str(1)) int variable = 1 >>> print(«int variable = <>«.format(1)) int variable = 1 >>> print(f’int variable = ‘) # f-строки работают в Python 3.6+ int variable = 1
Другие полезные функции
- len(str(x)) — посчитает длину числа;
- 1230 % 2 — если остаток от деления равен 0, то число четное;
- range(0,5) — диапазон чисел от 0 до 5, по которому можно итерироваться;
- int(str(123)[::-1]) — перевернет число (123 -> 321).
Работа с числами в Python
В этом материале рассмотрим работу с числами в Python. Установите последнюю версию этого языка программирования и используйте IDE для работы с кодом, например, Visual Studio Code.
В Python достаточно просто работать с числами, ведь сам язык является простым и одновременно мощным. Он поддерживает всего три числовых типа:
Хотя int и float присутствуют в большинстве других языков программирования, наличие типа комплексных чисел — уникальная особенность Python. Теперь рассмотрим в деталях каждый из типов.
Целые и числа с плавающей точкой в Python
В программирование целые числа — это те, что лишены плавающей точкой, например, 1, 10, -1, 0 и так далее. Числа с плавающей точкой — это, например, 1.0, 6.1 и так далее.
Создание int и float чисел
Для создания целого числа нужно присвоить соответствующее значение переменной. Возьмем в качестве примера следующий код:
Здесь мы присваиваем значение 25 переменной var1 . Важно не использовать одинарные или двойные кавычки при создании чисел, поскольку они отвечают за представление строк. Рассмотрим следующий код.
В этих случаях данные представлены как строки, поэтому не могут быть обработаны так, как требуется. Для создания числа с плавающей точкой, типа float , нужно аналогичным образом присвоить значение переменной.
Здесь также не стоит использовать кавычки.
Проверить тип данных переменной можно с помощью встроенной функции type() . Можете проверить результат выполнения, скопировав этот код в свою IDE.
var1 = 1 # создание int
var2 = 1.10 # создание float
var3 = "1.10" # создание строки
print(type(var1))
print(type(var2))
print(type(var3))В Python также можно создавать крупные числа, но в таком случае нельзя использовать запятые.
# создание 1,000,000
var1 = 1,000,000 # неправильноЕсли попытаться запустить этот код, то интерпретатор Python вернет ошибку. Для разделения значений целого числа используется нижнее подчеркивание. Вот пример корректного объявления.
# создание 1,000,000
var1 = 1_000_000 # правильно
print(var1)Значение выведем с помощью функции print :
Арифметические операции над целыми и числами с плавающей точкой
Используем такие арифметические операции, как сложение и вычитание, на числах. Для запуска этого кода откройте оболочку Python, введите python или python3 . Терминал должен выглядеть следующим образом:
Сложение
В Python сложение выполняется с помощью оператора + . В терминале Python выполните следующее.
Результатом будет сумма двух чисел, которая выведется в терминале.
Теперь запустим такой код.
В нем было выполнено сложение целого и числа с плавающей точкой. Можно обратить внимание на то, что результатом также является число с плавающей точкой. Таким образом сложение двух целых чисел дает целое число, но если хотя бы один из операндов является числом с плавающей точкой, то и результат станет такого же типа.
Вычитание
В Python для операции вычитания используется оператор -. Рассмотрим примеры.
>>> 3 - 1 2 >>> 1 - 5 -4 >>> 3.0 - 4.0 -1.0 >>> 3 - 1.0 2.0
Положительные числа получаются в случае вычитания маленького числа из более крупного. Если же из маленького наоборот вычесть большое, то результатом будет отрицательно число. По аналогии с операцией сложения при вычитании если один из операндов является числом с плавающей точкой, то и весь результат будет такого типа.
Умножение
Для умножения в Python применяется оператор * .
>>> 8 * 2 16 >>> 8.0 * 2 16.0 >>> 8.0 * 2.0 16.0
Если перемножить два целых числа, то результатом будет целое число. Если же использовать число с плавающей точкой, то результатом будет также число с плавающей точкой.
Деление
В Python деление выполняется с помощью оператора / .
>>> 3 / 1 3.0 >>> 4 / 2 2.0 >>> 3 / 2 1.5
В отличие от трех предыдущих операций при делении результатом всегда будет число с плавающей точкой. Также нужно помнить о том, что на 0 делить нельзя, иначе Python вернет ошибку ZeroDivisionError . Вот пример такого поведения.
>>> 1 / 0 Traceback (most recent call last): File "", line 1, in ZeroDivisionError: division by zero
Деление без остатка
При обычном делении с использованием оператора / результатом будет точное число с плавающей точкой. Но иногда достаточно получить лишь целую часть операции. Для этого есть операции интегрального деления. Стоит рассмотреть ее на примере.
Результатом такой операции становится частное. Остаток же можно получить с помощью модуля, о котором речь пойдет дальше.
Остаток от деления
Для получения остатка деления двух чисел используется оператор деления по модулю % .
>>> 5 % 2 1 >>> 4 % 2 0 >>> 3 % 2 1 >>> 5 % 3 2
На этих примерах видно, как это работает.
Возведение в степень
Число можно возвести в степень с помощью оператора ** .
Комплексные числа
Комплексные числа — это числа, которые включают мнимую часть. Python поддерживает их «из коробки». Их можно запросто создавать и использовать. Пример: