- ·上一篇内容:Python repr()函数
- ·下一篇内容:Python callable()函数
Python bin()函数
bin()是Python的一个内置函数,其作用是返回一个整数的二进制表示形式的字符串。该函数的参数可以是一个十进制的整数,也可以是其它进制的整数。返回的字符串以'0b'开始,表示这是一个二进制形式的字符串。其它非整数类型,如果其实现了__index__()函数,也可以使用该函数。
bin()函数的语法格式
官方文档给出的bin()函数的语法形式如下所示:
bin(x)
参数
x:是一个整数数值,可以是十进制的整数,也可以是其它进制的整数,但不可以是浮点数。该参数也可以是在类内部实现了__index__()函数的对象。
返回值
该函数的返回值是x的一个二进制形式的字符串,该字符串以'0b'开始。
bin()函数使用示例
#Python 3.8.2 [MSC v.1916 64 bit (AMD64)] on win32
>>>
>>>
x = 10
>>>
print(bin(x))
0b1010
>>>
print(type(bin(x)))
<class 'str'>
>>>
从上面的例子中可以看出,bin()函数把整型数10转换成了二进制形式:0b1010,同时使用type(bin(x))可以看出,bin()函数返回的是一个字符串类型。
bin()函数的参数可以是负的整数,但不能是浮点数。看看下面的例子:
>>>
x = -123
>>>
print(bin(x))
-0b1111011
>>>
x = 0
>>>
print(bin(x))
0b0
>>>
x = -0
>>>
print(bin(x))
0b0
>>>
x = 12.0
>>>
print(bin(x))
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
print(bin(x))
TypeError: 'float' object cannot be interpreted as an integer
>>>
x = 1.3
>>>
print(bin(x))
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
print(bin(x))
TypeError: 'float' object cannot be interpreted as an integer
>>>
从上面的例子可以看出,当参数x是浮点数时,将引发TypeError错误。
参数x也可以是其它进制的整型数。
下面的例子演示了二进制、十六进制和八进制的情况。
>>>
x = 0b1001
>>>
print(bin(x))
0b1001
>>>
x = 0X1F
>>>
print(bin(x))
0b11111
>>>
x = 0o17
>>>
print(bin(x))
0b1111
>>>
如果类中实现了__index__()函数,则bin()函数的参数x也可以是用户自定义的对象。
下面例子演示了在类内部实现__index__()函数以及未实现__index__()函数的情形。
class
Student:
id = 0
def
__init__(self,id):
self.id = id
def
__index__(self):
return
self.id
class
Teacher:
id = 0
def
__init__(self,id):
self.id = id
stu = Student(10)
print(bin(stu))
tea = Teacher(11)
print(bin(tea))
输出结果如下:
0b1010
Traceback (most recent call last):
File "D:/PY/bin.py", line 19, in <module>
print(bin(tea))
TypeError: 'Teacher' object cannot be interpreted as an integer
从输出结果可知,Student中实现了__index__()函数,使用其对象stu作为bin()函数的参数时可以正确执行,没有产生问题,而Teacher内未实现__index__()函数,则引发了TypeError异常。
以上是关于Python bin()函数的介绍,如有问题欢迎留言评论。
如需转载请注明出处:翔宇亭IT乐园(http://www.biye5u.com),并给出本文链接地址:
http://www.biye5u.com/article/python/2021/6534.html
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。