Числа: целые, вещественные, комплексные

Числа в Python 3: целые, вещественные, комплексные. Работа с числами и операции над ними.
Целые числа (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]) | x y по модулю (если модуль задан) |
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Над целыми числами также можно производить битовые операции
| x | y | Побитовое или |
| x ^ y | Побитовое исключающее или |
| x & y | Побитовое и |
| x | Битовый сдвиг влево |
| x >> y | Битовый сдвиг вправо |
| ~x | Инверсия битов |
Дополнительные методы
int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
int.to_bytes(length, byteorder, *, signed=False) - возвращает строку байтов, представляющих это число.
int.from_bytes(bytes, byteorder, *, signed=False) - возвращает число из данной строки байтов.
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
- int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) — преобразование целого числа в двоичную строку.
- hex(х) — преобразование целого числа в шестнадцатеричную строку.
- oct(х) — преобразование целого числа в восьмеричную строку.
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
Простенькие примеры работы с числами:
float.as_integer_ratio() — пара целых чисел, чьё отношение равно этому числу.
float.is_integer() — является ли значение целым числом.
float.hex() — переводит float в hex (шестнадцатеричную систему счисления).
classmethod float.fromhex(s) — float из шестнадцатеричной строки.
Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.
Модуль math предоставляет более сложные математические функции.
В Python встроены также и комплексные числа:
: complex() Для работы с комплексными числами используется также модуль cmath.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Как написать дробное число в питоне
В сегодняшнем уроке мы познакомимся с дробными числами – как их следует записывать в Питоне и как производить с ними вычисления.
Дробные числа в программировании называются «числа с плавающей точкой».
Записываются они просто: число 20,2 записывают так – 20.2
Вычисления с ними производят также, как и вычисления с обычными, целыми числами. Например, 20.2 / 2 Результат будет: 10.1
Но если вы запишите таким образом: 9 / 2, то вы получите результат: 4
Почему? Да потому, что без плавающей точки компьютер округляет итоговый результат до целого числа. Поэтому надо записывать так: 9.0 / 2, либо 9 / 2.0. Но лучше всего так: 9.0 / 2.0 И результат уже будет таким: 4.5
Практический пример
Создаем на рабочем столе новый файл в программе Notepad++ - test3.py . Не забываем, что код следует набирать руками для лучшего опыта, а файл следует сохранять в Кодировке UTF. Как изменить кодировку, мы с вами уже обсуждали в уроке 5 - ПЕРЕЙТИ.
Записываем в файл:
# -*- coding: utf- 8 -*- print u"В классе 10 учеников" print u"У пяти учеников рост", 150.5, u"см" print u"У трех учеников рост", 150.0+6.5, u"см" print u"У двух учеников рост", 160-1.5, u"см" print 9/2
print 9/2.0
print 9.0/2 print 9.0/2.0
Теперь открываем PowerShell и вводим: python desktop/test3.py
Результат должен быть таким:

Заметили ли вы, как в коде я добавил слово см (сантиметры)? Через запятую, затем – буква u и кавычки. То есть кириллический текст мы предваряем буквой u . Числа можно писать без кавычек. Все составные части вывода одной строки print мы разделяем запятой.
Домашнее задание
Напишите десять программных строк с вычислениями, чтобы получились дробные числа. Например, 10 разделить на 4. Или 22,5 разделить на 5. И т.д. Желательно, чтобы вы добавили таким же образом текст после вычислений, как в примере выше.
А в следующем уроке мы начнем знакомиться с переменными в Питоне 2.7 - перейти в урок 9.
- Вы здесь:
- Главная
- Python 2.7 с нуля
- Урок 8. Вычисления с дробными числами (с плавающей точкой)
ТИПЫ ДАННЫХ В PYTHON
Кроме того, к базовым типам также относятся логический тип и тип NoneType.
Числа
Тип данных Числа имеет в Python три вида:
Целые числа
Примеры записи целых десятичных чисел:
5 20 856 57557253
Двоичные числа записывают с префиксом 0b.
Примеры записи целых двоичных чисел:
0b101 0b10100
Восьмиричные числа записывают с префиксом 0o.
Примеры записи целых восьмиричных чисел:
Шестнадцатиричные числа записывают с префиксом 0x.
Примеры записи целых шестнадцатиричных чисел:
0x5 0x14 0x4fd
Дробные числа
Дробные числа записываются с помощью точки, отделяющей целую часть от дробной.
Примеры записи дробных чисел:
0.5 3.14 65.728
Комплексные числа
Мнимая часть комплексного числа записывается с помощью постфикса j.
Примеры записи комплексных чисел:
2 + 3j 3.7 + 0.5j 45 + 0j
Строки
Строки — это последовательности символов. Строки в Python записываются в кавычках. Можно использовать пару двойных кавычек или пару одинарных (апострофов).
Каждый символ в строке имеет свой индекс (номер). Нумерация начинается с нуля.
Примеры записи строк:
"Hello"
'я люблю Python'
Списки
Списки — составной тип данных, состоящий из элементов, разделенных запятыми.
Элементы списка не обязательно должны быть одного типа. Элементом списка может быть даже другой список.
Списки в Python записываются в квадратных скобках. Каждый элемент в списке имеет свой индекс (номер). Нумерация начинается с нуля.
[2, 5, 3, 7]
[5, 3.2, 'apple', 'orange']
[7, 3, [4, 2], 9]
Кортежи
Кортежи очень похожи на списки, они состоят из элементов, разделенных запятыми.
Основным отличием кортежей от списков является то, что они неизменяемы. Они работают быстрее списков и используются в тех случаях, когда необходимо предохранить данные от перезаписи.
Кортежи в Python записываются в круглых скобках. Каждый элемент в кортеже имеет свой индекс. Индексация начинается с нуля.
(5, 8, 2, 3)
(7, 9.3, 'gold', 'silver')
(7, 3, [4, 5], 9)
Следует обратить внимание на то, что в третьем примере, элементы списка, помещенного в кортеж, будут изменяемыми.
Множества
Множества являются неупорядоченным типом данных, который может хранить только уникальные значения. Все повторы автоматически удаляются.
Множества не поддерживают индексацию, то есть элементы множества не могут иметь индексов.
Множества удобны тем, что с ними можно выполнять операции объединения, пересечения, вычитания, сравнения (находить элементы множества, отсутствующие в другом множестве, или находить элементы множества, присутствующие в другом множестве).
Множества в Python записываются в фигурных скобках.
Элементами множества могут быть числа, строки, кортежи, но не могут быть списки, множества или словари.
Словари
Словари являются неупорядоченным типом данных и состоят из пар ключ-значение.
Используя ключи можно быстро получить значения из словаря (но не наоборот). Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), а значением — любой тип данных.
Пары ключ, значение в словаре разделяются двоеточием и записываются через запятую.
Словари в Python записываются в фигурных скобках.
Ключи в словаре не должны повторяться. Если ключ повторится, то предыдущее значение из словаря будет удалено.
x = print(x)
Логический тип
Логический тип (boolean) имеет два значения: истина (True) и ложь (False).
При преобразовании к логическому типу любой непустой и неравный нулю объект является истиной, а пустой или равный нулю — ложью.
True
False
Тип NoneType
Тип NoneType в Python принимает значение None, которое идентично значению Null в других языках программирования.
Проверка типа
Узнать тип объекта можно с помощью функции type().
Создадим строковый объект и напечатаем его тип.
a = 'wire' print(type(a))
Проверить тип объекта можно с помощью функции isinstance(). Функция принимает два аргумента: имя объекта и название типа. Если тип объекта и название типа совпадают, то функция возвратит логическое значение True, если не совпадают, то возвратит False.
Создадим целочисленный объект и напечатаем результат, возвращаемый функцией isinstance().
a = 5 print(isinstance(a, int))
True
Попробуем еще.
a = [5, 10, 20] print(isinstance(a, list))
Математические операции в Python: как вывести дробную часть и работать с числами

Представление чисел в Python 3 не отличается от обычных математических чисел. И поддерживают такие числа самые обыкновенные операции: сложение, вычитание, умножение, деление, возведение в степень, получение дробной части и т. п.
Целые числа (int)
Ниже вы можете увидеть стандартные Python-операции, в которых используется целое число (int):
a + b
Складываем
a - b
Вычитаем
a * b
Умножаем
a / b
Делим
a // b
Можем вывести целую часть от деления
a % b
Можем вывести остаток от деления
-a
Меняем знак числа
abs(x)
Можем вывести модуль числа x
divmod(a, b)
Пара (a // b, a % b)
a ** b
Операция для возведения в степень
pow(a, b[, x])
ab по модулю (в случае, если модуль задан)
Кроме того, числа int в Python 3 поддерживают длинную арифметику в отличие от некоторых других языков программирования. Однако для этого требуется больше памяти.
Битовые операции
Над числами int в Python можно выполнять и битовые операции. К примеру, a | b — это побитовое "или". Есть и другие варианты:
a ^ b
Побитовое исключающее или
a & b
Побитовое и
a
Сдвиг влево
a >> b
Сдвиг вправо
~a
Инверсия битов
Дополнительные методы и операции в Python
В эти операции входят: • int.bit_length() — количество бит, которое необходимо, чтобы представить число в двоичном виде без учёта лидирующих нулей и знака; • int.to_bytes(length, byteorder, *, signed=False) — метод возвращает строку байтов, которые представляют это число; • classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращение числа из заданной строки байтов.
Пример работы последнего метода:
>>> >>> int.from_bytes(b'\x00\x10', byteorder='big') 16 >>> int.from_bytes(b'\x00\x10', byteorder='little') 4096 >>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True) -1024 >>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False) 64512 >>> int.from_bytes([255, 0, 0], byteorder='big') 16711680
Операции с системами счисления
Как гласит математика и информатика, числа можно представить как в десятичной, так и в двоичной системе счисления. Допустим, число 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, in ValueError: 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)
Чтобы вывести дробную часть, в Python используют вещественные числа. Они поддерживают выполнение тех же операций, что и в случае с int. Но из-за особенностей их представления в компьютере, когда выводишь дробную часть, возможны неточности и даже ошибки:
>>> >>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 0.9999999999999999
Для повышения точности операций используются такие объекты, как Decimal и Fraction.
Вспомогательные методы
К ним относят:
• float.as_integer_ratio() — это пара целых чисел int, отношение которых равно этому числу; • float.is_integer() — функция определят, является ли данное значение целым числом; • float.hex() — функция переводит float в 16-тиричную систему счисления, то есть в hex; • classmethod float.fromhex(s) — функцию используют для получения float из 16-тиричной строки.
Кроме стандартных выражений, в Python есть и специальные полезные модули. Например, модуль math позволяет выполнять более сложные арифметические функции:
>>> >>> import math >>> math.pi 3.141592653589793 >>> math.sqrt(85) 9.219544457292887
А вот модуль random запускает генератор случайных чисел, позволяя реализовать функции случайного выбора:
>>> >>> import random >>> random.random() 0.75849839767373282
Комплексные числа в Python (complex)
Также в Python встроены комплексные числа:
>>> >>> x = complex(1, 2) >>> print(x) (1+2j) >>> y = complex(3, 4) >>> print(y) (3+4j) >>> z = x + y >>> print(x) (1+2j) >>> print(z) (4+6j) >>> z = x * y >>> print(z) (-5+10j) >>> z = x / y >>> print(z) (0.44+0.08j) >>> print(x.conjugate()) # Сопряжённое число (1-2j) >>> print(x.imag) # Мнимая часть 2.0 >>> print(x.real) # Действительная часть 1.0 >>> print(x > y) # Числа нельзя сравнить Traceback (most recent call last): File "", line 1, in TypeError: unorderable types: complex() > complex() >>> print(x == y) # Однако можно проверить их на равенство False >>> abs(3 + 4j) # Модуль 5.0 >>> pow(3 + 4j, 2) # Возведение в степень, получение значения степени (-7+24j)
Кроме того, для работы с complex может применяться модуль cmath.
На этом пока что всё. Следите за новостями и не забывайте оставлять свои комментарии!