Целые числа (int)
Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:
x + y | Сложение
x - y | Вычитание
x * y | Умножение
x / y | Деление
x // y | Получение целой части от деления
x % y | Остаток от деления
-x | Смена знака числа
abs(x) | Модуль числа
divmod(x, y) | Пара (x // y, x % y)
x ** y | Возведение в степень
pow(x, y[, z]) | xy по модулю (если модуль задан)
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
>>>
>>> 255 + 34289>>> 5 * 210>>> 20 / 36.666666666666667>>> 20 // 36>>> 20 % 32>>> 3 ** 481>>> pow(3, 4)81>>> pow(3, 4, 27)0>>> 3 ** 150369988485035126972924700782451696644186473100389722973815184405301748249Системы счисления
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
- int([object], [основание системы счисления]) - преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) - преобразование целого числа в двоичную строку.
- hex(х) - преобразование целого числа в шестнадцатеричную строку.
- oct(х) - преобразование целого числа в восьмеричную строку.
Примеры:
>>>
>>> a = int('19') # Переводим строку в число>>> b = int('19.5') # Строка не является целым числомTraceback (most recent call last): File "", line 1, inValueError: invalid literal for int() with base 10: '19.5'>>> c = int(19.5) # Применённая к числу с плавающей точкой, отсекает дробную часть>>> print(a, c)19 19>>> bin(19)'0b10011'>>> oct(19)'0o23'>>> hex(19)'0x13'>>> 0b10011 # Так тоже можно записывать числовые константы19>>> int('10011', 2)19>>> int('0b10011', 2)19Вещественные числа (float)
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
>>>
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.10.9999999999999999Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
>>>
>>> a = 3 ** 1000>>> a + 0.1Traceback (most recent call last): File "", line 1, inOverflowError: int too large to convert to floatПростенькие примеры работы с числами:
>>>
>>> c = 150>>> d = 12.9>>> c + d162.9>>> p = abs(d - c) # Модуль числа>>> print(p)137.1>>> round(p) # Округление137Модуль math предоставляет более сложные математические функции.
>>>
>>> import math>>> math.pi3.141592653589793>>> math.sqrt(85)9.219544457292887Модуль random реализует генератор случайных чисел и функции случайного выбора.
>>>
>>> import random>>> random.random()0.15651968855132303