Числа, преобразование типов и математика в Python

Числовые типы данных используются для хранения числовых значений.

Python поддерживает целые числа, числа с плавающей точкой и комплексные числа. Они определяются как классы int, float и complex в Python.

  • int — хранит целые числа со знаком неограниченной длины.

  • float — хранит десятичные дроби с точностью до 15 знаков после запятой.

  • complex — хранит комплексные числа.


Числовой тип данных в Python

Целые числа и числа с плавающей точкой различаются наличием или отсутствием десятичной точки. Например,

  • 5 — целое число

  • 5.42 — число с плавающей точкой.

Комплексные числа записываются в форме x + yj, где x — действительная часть, а y — мнимая часть.

Мы можем использовать функцию type(), чтобы узнать, к какому классу относится переменная или значение.

Рассмотрим пример,

num1 = 5
print(num1, 'is of type', type(num1))

num2 = 5.42
print(num2, 'is of type', type(num2))

num3 = 8+2j
print(num3, 'is of type', type(num3))

Вывод

5 is of type <class 'int'>
5.42 is of type <class 'float'>
(8+2j) is of type <class 'complex'>

В приведённом выше примере мы создали три переменные с именами num1, num2 и num3 со значениями 5, 5.42 и 8+2j соответственно.

Мы также использовали функцию type(), чтобы узнать, к какому классу принадлежит определённая переменная. Поскольку,

  • 5 — целое значение, type() возвращает int как класс num1, то есть <class 'int'>

  • 5.42 — значение с плавающей точкой, type() возвращает float как класс num2, то есть <class 'float'>

  • 1 + 2j — комплексное число, type() возвращает complex как класс num3, то есть <class 'complex'>


Системы счисления

Числа, с которыми мы работаем каждый день, относятся к десятичной системе счисления (основание 10).

Но программистам приходится работать с двоичной (основание 2), шестнадцатеричной (основание 16) и восьмеричной (основание 8) системами счисления.

В Python мы можем представить эти числа, поставив соответствующий префикс перед числом. В следующей таблице перечислены эти префиксы.

Система счисления

Префикс

Двоичная

0b или 0B

Восьмеричная

0o или 0O

Шестнадцатеричная

0x или 0X

Вот несколько примеров

print(0b1101011)  # печатает 107

print(0xFB + 0b10)  # печатает 253

print(0o15)  # печатает 13

Преобразование типов в Python

В программировании преобразование типов — это процесс преобразования одного типа числа в другой.

Такие операции, как сложение, вычитание, преобразуют целые числа в float неявно (автоматически), если один из операндов — float. Например,

print(1 + 2.0) # печатает 3.0

Здесь видно, что 1 (целое) преобразуется в 1.0 (float) для сложения, и результат также является числом с плавающей точкой.

Явное преобразование типов

Мы также можем использовать встроенные функции, такие как int(), float() и complex(), для явного преобразования между типами. Эти функции могут даже преобразовывать из строк.

num1 = int(2.3)
print(num1)  # печатает 2

num2 = int(-2.8)
print(num2)  # печатает -2

num3 = float(5)
print(num3) # печатает 5.0

num4 = complex('3+5j')
print(num4)  # печатает (3 + 5j)

Здесь, при преобразовании из float в integer, число усекается (десятичные части удаляются).

Аналогично, при преобразовании из integer в float, к числу добавляется .0.

Чтобы узнать больше о преобразовании типов в Python, посетите Преобразование типов в Python.


Модуль random в Python

Python предлагает модуль random для генерации случайных чисел или для выбора случайного элемента из итератора.

Сначала нам нужно импортировать модуль random. Например,

import random

print(random.randrange(10, 20))

list1 = ['a', 'b', 'c', 'd', 'e']

# получить случайный элемент из list1
print(random.choice(list1))

# перемешать list1
random.shuffle(list1)

# Вывести перемешанный list1
print(list1)

# Вывести случайный элемент
print(random.random())

Вывод

15
a
['d', 'b', 'c', 'e', 'a']
0.6716121217631744

Математика в Python

Python предлагает модуль math для выполнения различных математических операций, таких как тригонометрия, логарифмы, вероятность и статистика и т. д. Например,

import math

print(math.pi)

print(math.cos(math.pi))

print(math.exp(10))

print(math.log10(1000))

print(math.sinh(1))

print(math.factorial(6))

Вывод

3.141592653589793
-1.0
22026.465794806718
3.0
1.1752011936438014
720