说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的 bin(i) 将整数转变为以“0b”前缀的二进制字符串。结果是一个合法的 Python 表达式。如果 i 不是 Python 的 int 对象,它必须定义 __index__()
方法,以便返回整数值。如果未指定整数,则会引发TypeError异常,突出显示无法解释为整数的类型。
下面是一些例子:
bin(3)
# '0b11'
bin(-10)
# '-0b1010'
若要控制是否显示前缀“0b”,可以采用以下两种方案:
format(14, '#b'), format(14, 'b')
# ('0b1110', '1110')
f'{14:#b}', f'{14:b}'
# ('0b1110', '1110')
我们定义对象的 __index__()
方法:
class Quantity:
apple = 1
orange = 2
grapes = 2
def __index__(self):
return self.apple + self.orange + self.grapes
bin(Quantity())
# 0b101
在这里,我们向 bin()
方法发送了一个 Quantity 类的对象。即使对象数量不是整数, bin()
方法也不会引发错误。这是因为我们实现了返回整数(水果数量之和)的 __index__()
方法。然后将该整数提供给 bin()
方法。
更新时间:Nov. 11, 2021, 1:38 p.m. 标签:python 二进制