Python整型的附加方法

开课吧开课吧锤锤2021-03-17 11:45

    作为一门新手友好、功能强大、高效灵活的编程语言,无论是想进入数据分析、人工智能、网站开发这些领域,还是希望掌握第一门编程语言,都可以用Python来开启无限未来的无限可能!今天就来说说Python整型的附加方法解析。

py

    整型的附加方法

    int类型实现了numbers.Integral抽象类。除此之外,也提供了下面这些方法:

    int.bit_length()返回二进制中表示整数所需的位数,不包括符号和前导零:

    >>>n=-37>>>bin(n)'-0b100101'>>>n.bit_length()6

    更精确地说,如果x是非0整数,则x.bit_length()是一个唯一的正整数k,使得2**(k-1)<=abs(x)<2**k。同样地,当abs(x)大小合适对其求对数可以得到一个正确四舍五入的对数时,那么k=1+int(log(abs(x),2))。如果x为0,则x.bit_length()返回0。

    该方法等价于:

    defbit_length(self):s=bin(self)#binaryrepresentation:bin(-37)-->'-0b100101's=s.lstrip('-0b')#removeleadingzerosandminussignreturnlen(s)#len('100101')-->6int.to_bytes(length,byteorder,*,signed=False)返回一个表示该整数的字节数组>>>(1024).to_bytes(2,byteorder='big')b'x04x00'>>>(1024).to_bytes(10,byteorder='big')b'x00x00x00x00x00x00x00x00x04x00'>>>(-1024).to_bytes(10,byteorder='big',signed=True)b'xffxffxffxffxffxffxffxffxfcx00'>>>x=1000>>>x.to_bytes((x.bit_length()+7)//8,byteorder='little')b'xe8x03'

    该整数用length个字节表示。如果整数不能用给定的字节数表示,则会引发OverflowError。

    byteorder参数确定用于表示整数的字节顺序。如果byteorder是“big”,则最有效的字节位于字节数组的开头。如果byteorder是“little”,则最有效的字节位于字节数组的末尾。要请求主机系统的本地字节顺序,请使用sys.byteorder作为字节顺序值。

    signed参数确定是否使用2的补数来表示整数。如果signed是False,并且给定了一个负整数,则会引发OverflowError。signed的默认值为False。

    classmethodint.from_bytes(bytes,byteorder,*,signed=False)返回一个由给定字节数组表示的整数。

    defbit_length(self):s=bin(self)#binaryrepresentation:bin(-37)-->'-0b100101's=s.lstrip('-0b')#removeleadingzerosandminussignreturnlen(s)#len('100101')-->6

    int.as_integer_ratio()返回一对整数,它们的比完全等于原始整数,并且分母为正。整数(整数)的比率总是整数作为分子,1作为分母。

    以上就是Python整型的附加方法的详解,更多Python教程相关内容尽在开课吧广场Python教程频道。

有用
分享