Python bin()
时间:2020-02-23 14:42:27 来源:igfitidea点击:
Python bin()函数用于将整数转换为二进制格式的字符串。
格式化的字符串以" 0b"为前缀。
Python bin()
Python bin()函数也可以与具有不同格式(例如八进制,十六进制)的整数一起使用。
该函数将负责将它们转换为二进制字符串。
让我们看一下bin()函数的一些示例。
x = 10 y = bin(x) print(type(y)) print(bin(x))
输出:
<class 'str'> 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"前缀,则还可以使用"format()"函数。
这是一个简单的示例,显示了如何使用format()函数。
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()
让我们看看尝试使用float参数运行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 __()
函数,则会收到错误消息,提示为" TypeError:'Person'对象无法解释为整数"。
让我们看看如果__index __()
函数返回非整数会发生什么。
只需将index()函数更改为以下内容:
def __index__(self): return str(self.id)
错误:TypeError:__ index__返回了非整数(类型str)
。
这就是python bin()函数将整数转换为二进制字符串的全部操作。
我们还了解到,通过实现返回整数的__index __()
函数,也可以将Object转换为二进制字符串表示形式。