Автор оригинала: Pankaj Kumar.
Функция Python Bin () используется для преобразования целого числа в строку двоичного формата. Форматужная строка префиксирована с «0B».
Python Bin ()
Функция Python Bin () может использоваться с целыми числами, имеющими разные форматы, такие как октал, шестнадцатеричные тоже. Функция позаботится о преобразовании их в двоичную строку. Давайте посмотрим на некоторые примеры функции Bin ().
x = 10 y = bin(x) print(type(y)) print(bin(x))
Выход:
0b1010
С вывода ясно, что функция Bin () возвращает строку, а не номер. Функция Python Type () Возвращает тип объекта.
Пример Python Bin () с другими формами формата
Давайте посмотрим некоторые примеры использования функции Bin () с целыми числами в разных форматах.
x = 0b110 # 6 print(bin(x)) x = 0xF # 15 print(bin(x)) x = 0o70 # 56 print(bin(x))
Выход:
0b110 0b1111 0b111000
Совет : Если вы не хотите префикс «0b» в двоичной строке, вы также можете использовать Формат ()
функция. Вот быстрый пример, показывающий, как использовать функцию формата ().
x = 10 print(format(x, '#b')) # 0b1010 print(format(x, 'b')) # 1010 x= 0xF print(format(x, 'b')) # 1111 print(f'{x:b}') # 1111 (If you knew this format, you are Python Ninja!)
Выход:
0b1010 1010 1111 1111
Python Bin () с поплавком
Давайте посмотрим, что произойдет, когда мы пытаемся запустить функцию Bin () с аргументом поплавка.
x = 10.5 print(bin(x))
Выход:
TypeError: 'float' object cannot be interpreted as an integer
Python Bin () с объектом
Если вы хотите иметь бинарное строковое представление объекта, вам придется реализовать функцию __index __ (), которая должна вернуть целое число. Давайте посмотрим на это простым примером.
class Person: id = 0 def __init__(self, i): self.id = i def __index__(self): return self.id p = Person(10) print(bin(p))
Выход: 0b1010.
Если объект не определяет функцию __index __ (), мы получим сообщение об ошибке AS Объект TypeError: «Person» нельзя интерпретировать как целое число
Отказ
Давайте посмотрим, что произойдет, если __Index __ () функция возвращает не-int. Просто измените функцию index (), чтобы следовать:
def __index__(self): return str(self.id)
Ошибка: TypeError: __Index__ вернул не-int (тип STR)
Это все для функции Python Bin () для преобразования целого числа к двоичной строке. Мы также узнали, что объект также может быть преобразован в бинарное строковое представление путем реализации функции __Index __ (), которая возвращает целое число.
Ссылка: Официальная документация