内建函数
Python 解释器内置了许多可用的函数和类型,如下:
abs(x) :返回一个数的绝对值,参数可以是整数或浮点数,若参数是复数,则返回其大小。
all(iterable) :传入可迭代的对象,假如所有元素都是True,返回True,或者迭代为空,也返回True
例:
1 >>> def all(iterable): 2 for ele in iterable: 3 if not ele: 4 return False 5 return True 6 7 >>> list1 = [1,2,3] 8 >>> all(list1) 9 True 10 >>> list2 = [1,2,None] 11 >>> all(list2) 12 False
any(iterable) :如果迭代对象的任何元素都为True,返回True,若迭代对象为空,则返回True
例:
1 >>> def any(i): 2 for ele in i: 3 if ele: 4 return True 5 return False 6 7 >>> list1 = [1,0,3,4] 8 >>> any(list1) 9 True 10 >>> list2 = [1,0,3,None] 11 >>> any(list2) 12 True
ascii(objecet) :返回一个可用打印表示对象的字符串。遇到非ASCII 字符,使用 \x, \u 或者 \U 来转义字符
bin(x) :将一个整数转换为带“0b”前缀的字符串,结果是一个有效的Python表达式
例:
1 >>> bin(2) 2 3 '0b10' 4 >>> bin(-2) 5 6 '-0b10' 7 >>>
如果需要加上前缀“0b”,可以使用下面其中一种方法
1 >>> format(10, '#b'), format(10, 'b') 2 3 ('0b1010', '1010') 4 >>> f'{10:#b}', f'{10:b}' 5 6 ('0b1010', '1010')
class bool([x]) :返回一个布尔值,True 或 False。如果x为false或省略,则返回False; 否则返回True 。bool 类是 int 类的子类,无法再被继承。
breakpoint(*args, **kws) :Python 3.7 中新增的函数。 该方法执行时会中断当前程序,进入你所选择的调试器中(debug 模式)。实际调用的是 sys.breakpoint(),传递了 args 和 kws。
class bytearray([source[, encoding[, errors]]]) :返回一个新的字节数组,bytearray类是一个范围从 0<= x <= 256 的可变整数序列。
可选参数 source 可用来初始化数组,有以下几种方式:
- source 为字符串时,要指定编码方式,bytearray() 会使用str.encoding() 将字符串转换为字节。否则会报错:TypeError: string argument without an encoding
- source 为整数时,以整数的大小为个数,1输出1个\x00,2输出2个\x00,以此类推
- source 为缓冲区接口的对象时,则将使用该对象的只读缓冲区来初始化bytes数组
- 若 source 是可迭代的,则它必须是0 <= x <256范围内的整数可迭代对象,它们用作数组的初始内容
- 若不传参,则创建大小为 0 的数组
class bytes([source[, encoding[, errors]]]) :返回一个新的字节对象(8位,取值0<= x <256),是一个不可变的整数序列。参数的使用方法与 bytearray()一致。
小点:str 与 bytes 的格式区别
- 字符串是文本序列,有编码格式(utf-8, gbk 等 )
- bytes 是字节序列,没有编码一说
- 文本的编码,是指字符如何使用字节来表示
- 使用 encode(),可以将字符变成 bytes 格式的数据,而 decode() 方法可以将 bytes格式的数据转换为字符
callable(object):如果参数是可调用的,返回 True,否则返回 False。 若返回 True,有可能还会调用失败,若返回 False,对象是永远无法被成功调用的。
另外需注意,类是可以被调用的(调用一个类会返回一个新实例);若一个实例的类中含有__call__() 方法,则该实例可以被调用。
chr(i): 将以 Unicode 编码的整数 i 以字符形式返回,例如,chr(97)返回字符串'a',而chr(8364)返回字符串'€'。 这是ord()的反转。
i 的取值从 0 到 1,114,111,超过这个范围会报 ValueError 错误.
@classmethod :将一个方法转换为类方法。类方法接收一个类作为隐式的第一个参数,声明一个类方法的格式如下:
class C: @classmethod def f(cls, arg1, arg2, ...): ...
@classmethod 形式表示一个函数装饰器
可以通过类或实例调用类方法,例如:例如类 C.f() 或实例 C().f() .除了类之外,该实例被忽略。 如果为派生类调用类方法,则派生类对象将作为隐含的第一个参数传递。