Числа в Python.

Сегодня я расскажу о числах в python, а также о их операциях. В Python существует 3 вида чисел:

  • Целые числа (int)
  • Вещественные числа (float)
  • Комплексные числа (complex)

Целые числа (int)

Целые числа в Python ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

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 по модулю (если модуль задан)


Битовые операции

Над целыми числами также можно производить битовые операции.

x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x << n Битовый сдвиг влево
x >> y Битовый сдвиг вправо
~x Инверсия битов


Методы

int.bit_length() – количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей. Пример:

n = -37
bin(n)
# Выведет: '-0b100101'

n.bit_length()
# Выведет: 6

int.to_bytes(length, byteorder, *, signed=False) – возвращает строку байтов, представляющих это число. Пример:

(1024).to_bytes(2, byteorder='big')
# Выведет: b'\x04\x00'

(1024).to_bytes(10, byteorder='big')
# Выведет: b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'

(-1024).to_bytes(10, byteorder='big', signed=True)
# Выведет: b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'

x = 1000
x.to_bytes((x.bit_length() // 8) + 1, byteorder='little')
# Выведет: b'\xe8\x03'

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

Вещественные числа (float)

Вещественные числа поддерживают те же операции, что и целые. Но вещественные числа неточны, и это может привести к ошибкам:

0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
# Выведет: 0.9999999999999999

Вещественные числа не поддерживают длинную арифметику:

a = 3 ** 1000
a + 0.1
# Выведет: Traceback (most recent call last):
  File "", line 1, in
OverflowError: int too large to convert to float

Методы
  • float.as_integer_ratio() – пара целых чисел, их отношение равно этому числу.
  • float.is_integer() – является ли значение целым числом.
  • float.hex() – переводит float в hex (шестнадцатеричную систему счисления).
  • classmethod float.fromhex(s) – float из шестнадцатеричной строки.

Также для работы с числами в Python есть несколько полезных модулей.

Модуль math предоставляет более сложные математические функции. Например:

import math
math.pi
# Выведет: 3.141592653589793

math.sqrt(85)
# Выведет: 9.219544457292887

Модуль random реализует генератор случайных чисел и функции случайного выбора. Например:

import random
random.random()
# Выведет: 0.15651968855132303

Комплексные числа (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)

Также в Python существует интересный модуль под назанием cmath. Данный модуль предоставляет функции для работы с комплексными числами:

  • cmath.phase(x) – возвращает фазу комплексного числа
  • cmath.polar(x) – преобразование к полярным координатам. Возвращает пару (r, phi).
  • cmath.rect(r, phi) – преобразование из полярных координат.
  • cmath.exp(x) – ex.
  • cmath.log(x[, base]) – логарифм x по основанию base. Если base не указан, возвращается натуральный логарифм.
  • cmath.log10(x) – десятичный логарифм.
  • cmath.sqrt(x) – квадратный корень из x.
  • cmath.acos(x) – арккосинус x.
  • cmath.asin(x) – арксинус x.
  • cmath.atan(x) – арктангенс x.
  • cmath.cos(x) – косинус x.
  • cmath.sin(x) – синус x.
  • cmath.tan(x) – тангенс x.
  • cmath.acosh(x) – гиперболический арккосинус x.
  • cmath.asinh(x) – гиперболический арксинус x.
  • cmath.atanh(x) – гиперболический арктангенс x.
  • cmath.cosh(x) – гиперболический косинус x.
  • cmath.sinh(x) – гиперболический синус x.
  • cmath.tanh(x) – гиперболический тангенс x.
  • cmath.isfinite(x) – True, если действительная и мнимая части конечны.
  • cmath.isinf(x) – True, если либо действительная, либо мнимая часть бесконечна.
  • cmath.isnan(x) – True, если либо действительная, либо мнимая часть NaN.
  • cmath.pi – π.
  • cmath.e – e.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Один ответ к “Числа в Python.”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Связи между моделями.

Связи между моделями.

В нашем проекте есть одна модель под названием “Объявления”. В этой статье мы создадим новый класс модели “Rubric”, которая будет представлять рубрики объявлений. Допишем в

 
Параметры полей и моделей.

Параметры полей и моделей.

Для того, чтобы наша административная панель Django выглядела более понятна для обычного пользователя необходимо указать правильные названия полей. Наша созданная модель представляется непонятной аббревиатурой “Bbs”,

 
Административный web-сайт Django.

Административный web-сайт Django.

Административный web-сайт предоставляет доступ ко всем моделям, объявленным во всех приложениях, что составляют проект. С помощью данной панели можно просматривать, добавлять, править и удалять записи,

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: