Сообщить об ошибке.

Преобразование числовых типов

Преобразование типов в арифметических операциях:

В арифметических операциях и операциях сравнения могут принимать участие любые два числа, относящиеся к встроенным типам Python.Если типы операндов различаются, выполняется автоматическое повышение типов. Python преобразует операнд "меньшего" размера к операнду "большего" размера. Числовые типы имеют следующий порядок следования "размеров" от наименьшего к наибольшему:

  1. int - целые числа,
  2. float - числа с плавающей точкой,
  3. complex - комплексные числа.

Примеры использования:

# числа одного типа
>>> 2 + 2
>>> 4
# числа разного типа
>>> 2 + 2.5
# произошло преобразование типа 
# от 'меньшего' порядка к 'большему'
# 4.5 
>>> 10 + 0.0
10.0
>>> 101 + (3+7j)
# Здесь так же произошло преобразование типа
# (104+7j)
>>> 10 + 0j
(10+0j)

Принудительное преобразование типов:

Можно выполнить принудительное преобразование типов, передав аргумент, не являющийся комплексным числом, любому из классов встроенных числовых типов:

  • класс int() для принудительного преобразования к типу int
  • класс float() принудительное преобразование в тип float
  • класс complex() для принудительного преобразования к типу complex

При преобразовании тип int отбрасывает дробную часть своего аргумента, если таковая имеется, например int(9.8) равно 9. Кроме того, можно вызвать тип complex с двумя числовыми аргументами, представляющими действительную и мнимую части. Преобразовать таким способом комплексное число в другой числовой тип невозможно, поскольку однозначных способов преобразования комплексного числа, скажем, в число с плавающей точкой просто не существует.

Кроме того, любой встроенный числовой тип можно вызвать с передачей ему аргумента в виде строки, в которой используется синтаксис написания соответствующего числового типа. Строка может содержать ведущий и/или замыкающий пробелы, начинаться со знака + или -. В случае комплексных чисел - выполнять сложение или вычитание действительной и мнимой частей.

Примеры использования:

# Преобразование строки в число
>>> int('  10  ')
# 10
>>> int('-9  ')
# -9
>>> float('  -9.9 ')
# -9.9
>>> float('9  ')
# 9.0
>>> complex('  -101 ')
# (-101+0j)
>>> complex(' +1.01 ')
# (10.1+0j)
>>> complex('  -7+7j ')
# (-7+7j)

Класс int() может быть вызван с двумя аргументами. Первый- это преобразуемая строка, а второй - основание системы счисления, используемой в преобразуемой строке, в виде целого числа от 2 до 36.

# Значение ' 101 ' в системе счисления с основанием 2
>>> int ('101', 2)
# 5

Для оснований систем счисления, значение которых превышает 10, недостающие дополнительные "цифры" берутся из подмножества букв начальной части алфавита, как в нижнем, так и в верхнем регистре.