01、abs()
描述: 返回数字绝对值或复数的模
语法: abs( x )
参数: x 数值表达式。
案例:
abs(-6) 6 abs(5j+4) 6.4031242374328485
02、all()
描述: 接受一个迭代器,如果迭代器(元组或列表)的所有元素都为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。
注意: 空元组、空列表返回值为True,这里要特别注意。
语法: all(iterable)
参数: iterable – 元组或列表
all([1,0,3,6]) False all([1,9,3,6]) True all(['a', 'b', '', 'd']) False all([]) #空列表为真 True all(()) #空元组为真 True
03、any()
描述: 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。
语法: any (iterable)
参数: iterable – 元组或列表
案例:
any([0,0,0,[]]) False any([0,0,1]) True any((0, '', False)) False any([]) # 空列表 False any(()) # 空元组 False
04、ascii()
描述: ascii() 函数返回任何对象(字符串,元组,列表等)的可读版本。
ascii() 函数会将所有非 ascii 字符替换为转义字符:
å 将替换为 \xe5。
语法: ascii(object)
参数: *object–*对象,可以是元组、列表、字典、字符串、set()创建的集合。
案例:
ascii('中国') "'\\u4e2d\\u56fd'" ascii('新冠肺炎') "'\\u65b0\\u51a0\\u80ba\\u ascii("My name is Ståle") "'My name is St\\xe5le'" print(ascii((1,2))) #元组 (1, 2) print(type(ascii((1,2)))) <class 'str'> print(ascii([1,2])) #列表 [1, 2] print(type(ascii([1,2]))) <class 'str'> print(ascii('?')) #字符串,非 ASCII字符,转义 '\uff1f' print(type(ascii("?"))) <class 'str'> print(ascii({1:2,'name':5})) #字典 {1: 2, 'name': 5} print(type(ascii({1:2,'name':5}))) <class
ASCII码表具体如下所示
Bin(二进制) | Oct(八进制) | Dec(十进制) | Hex(十六进制) | 缩写/字符 | 解释 |
0000 0000 | 00 | 0 | 0x00 | NUL(null) | 空字符 |
0000 0001 | 01 | 1 | 0x01 | SOH(start of headline) | 标题开始 |
0000 1010 | 012 | 10 | 0x0A | LF (NL line feed, new line) | 换行键 |
0010 0100 | 044 | 36 | 0x24 | $ | 美元符 |
0010 0101 | 045 | 37 | 0x25 | % | 百分号 |
0010 1010 | 052 | 42 | 0x2A | * | 星号 |
0011 0010 | 062 | 50 | 0x32 | 2 | 字符2 |
0011 0111 | 067 | 55 | 0x37 | 7 | 字符7 |
0011 1000 | 070 | 56 | 0x38 | 8 | 字符8 |
0011 1001 | 071 | 57 | 0x39 | 9 | 字符9 |
0100 0000 | 0100 | 64 | 0x40 | @ | 电子邮件符号 |
0100 0001 | 0101 | 65 | 0x41 | A | 大写字母A |
0110 0101 | 0145 | 101 | 0x65 | e | 小写字母e |
0110 1100 | 0154 | 108 | 0x6C | l | 小写字母l |
0110 1101 | 0155 | 109 | 0x6D | m | 小写字母m |
0110 1110 | 0156 | 110 | 0x6E | n | 小写字母n |
0110 1111 | 0157 | 111 | 0x6F | o | 小写字母o |
0111 0000 | 0160 | 112 | 0x70 | p | 小写字母p |
0111 1110 | 0176 | 126 | 0x7E | ~ | 波浪号 |
0111 1111 | 0177 | 127 | 0x7F | DEL (delete) | 删除 |
05、bin()
描述 :bin() 返回一个整数 int 或者长整数 long int 的二进制表示。将十进制转换为二进制
语法: bin(x)
参数: x – int 或者 long int 数字
案例:
bin(2) '0b10' bin(20)' 0b10100'
06、oct()
描述: 将十进制转换为八进制
语法: oct(x)
参数: x – 整数。
案例:
oct(8) '0o10' oct(43) '0o53'
07、hex()
描述: hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。
语法: hex(x)
参数: x – 10进制整数。
案例:
将十进制转换为十六进制 hex(43) '0x2b'#43等于2B hex(15) '0xf'
08、bool()
描述: 测试一个对象是True, 还是False.bool 是 int 的子类。
语法: class bool([x])
参数: x – 要进行转换的参数。
案例:
bool([0,0,0]) True bool([]) False issubclass(bool, int) # bool 是 int 子类 True
09、bytes()
描述: 将一个字符串转换成字节类型
语法: class bytes([source[, encoding[, errors]]])
参数:
如果 source 为整数,则返回一个长度为 source 的初始化数组;
如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
如果没有输入任何参数,默认就是初始化数组为0个元素。
案例:
s = "apple" bytes(s,encoding='utf-8') b'apple' bytes([1,2,3,4]) b'\x01\x02\x03\x04'
10、str()
描述: str() 函数将对象转化为适于人阅读的形式。将字符类型、数值类型等转换为字符串类型
语法: class str(object=’’)
参数: object – 对象。
案例:
integ = 100
str(integ)'100' dict = {'baidu': 'baidu.com', 'google': 'google.com'};str(dict)"{'baidu': 'baidu.com', 'google': 'google.com'}"
11、callable()
描述: 判断对象是否可以被调用,能被调用的对象就是一个callable 对象,对于函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True。
语法: callable(object)
参数: object – 对象
案例:
callable(0)False def add(x, y): return x + y callable(add)True
12、chr()
描述: chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
语法: chr(i)
参数: i – 可以是10进制也可以是16进制的形式的数字。
案例:
查看十进制整数对应的ASCII字符chr(65)'A'可以参考4案例中的表
13、ord()
描述: 查看某个ascii对应的十进制数
语法: ord©
参数: c – 字符。
案例:
ord('A')65 ord('~')126
14、classmethod()
**描述:**classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
**语法:**classmethod
参数:无
案例:
class Sample(object): bar = 1 def fun1(self): print ('foo') @classmethod def fun2(cls): print ('fun2') print (cls.bar) cls().fun1() # 调用 foo 方法 Sample.fun2() # 不需要实例化 fun2 1 foo
15、compile()
**描述:**compile() 函数将一个字符串编译为字节代码。
**语法:**compile(source, filename, mode[, flags[, dont_inherit]])
参数:
source – 字符串或者AST(Abstract Syntax Trees)对象。。
filename – 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode – 指定编译代码的种类。可以指定为 exec, eval, single。
flags – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
flags和dont_inherit是用来控制编译源码时的标志
案例:
将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译。 s = "print('helloworld')" r = compile(s,"<string>", "exec") r <code object <module> at 0x000000000F819420, file "<string>", line 1> exec(r) helloworld str = "for i in range(0,5): print(i)" c = compile(str,'','exec') # 编译为字节代码对象 c <code object <module> at 0x000001EB82C91ED0, file "", line 1> exec(c) 0 1 2 3 4
16、complex()
**描述:**创建一个复数
**语法:**class complex([real[, imag]])
参数:
- real – int, long, float或字符串;
- imag – int, long, float;
案例:
complex(1,2) (1+2j) complex('1') (1+0j) complex("1+2j") (1+2j)
17、delattr()
**描述:**删除对象的属性
**语法:**delattr(object, name)
参数:
- object – 对象。
- name – 必须是对象的属性。
案例:
class Coordinate: x = 10 y = -5 z = 0 point1 = Coordinate() print('x = ',point1.x) x = 10 print('y = ',point1.y) y = -5 print('z = ',point1.z) z = 0 delattr(Coordinate, 'z') print('--删除 z 属性后--') print('z = ',point1.z)# 触发错误 AttributeError: 'Coordinate' object has no attribute 'z' dir(Coordinate) ['__class__ 省略部分 'x', 'y'
18、dict()
**描述:**创建数据字典
语法:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
参数:
**kwargs – 关键字
mapping – 元素的容器。
iterable – 可迭代对象。
案例:
#创建空字典
dict() {} #传入关键字 dict(a='a', b='b', t='t') {'a': 'a', 'b': 'b', 't': 't'} # 映射函数方式来构造字典 dict(zip(['one', 'two', 'three'], [1, 2, 3])) {'three': 3, 'two': 2, 'one': 1} #可迭代对象方式来构造字典 dict([('one', 1), ('two', 2), ('three', 3)]) {'three': 3, 'two': 2, 'one':
19、dir()
**描述:**dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
**语法:**dir([object])
**参数:**object – 对象、变量、类型。
案例:
dir() # 获得当前模块的属性列表 ['In', 'Out', '_', '__', '___', '__builtin__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '_dh', '_i', '_i1', '_ih', '_ii', '_iii', '_oh', 'exit', 'get_ipython', 'quit']
dir([ ])# 查看列表的方法 dir(list())# 查看列表的方法 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] print(dir(str))#获取所有的方法 print(dir(list))#获取所有的方法 print(dir(dict))#获取所有的 不带参数时返回当前范围内的变量,方法和定义的类型列表;带参数时返回参数的属性,方法列表。
20、divmod()
**描述:**divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
**语法:**divmod(a, b)
**参数:**a: 数字–被除数
b: 数字–除数
案例:
divmod(11,3) (3, 2) divmod(20,4) (5, 0)
21、enumerate()
**描述:**enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。返回一个可以枚举的对象,该对象的next()方法将返回一个元组。
**语法:**enumerate(sequence, [start=0])
**参数:**sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
案例:
L = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]
enumerate(L) <enumerate at 0x226e1ee1138>#生成的额迭代器,无法直接查看 list(enumerate(L))#列表形式,可以看到内部结构,默认下标从0开始 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] list(enumerate(L, start=1)) #下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] for i,v in enumerate(L): print(i,v) 0 Spring 1 Summer 2 Fall 3 Winter for i,v in enumerate(L,1): print(i,v) 1 Spring 2 Summer 3 Fall 4 Winter s = ["a","b","c"] for i ,v in enumerate(s,2): print(i,v) 2 a 3 b 4 c 普通的 for 循环 i = 0 seq = ['one', 'two', 'three'] for element in seq: print (i, seq[i]) i+= 1 0 one 1 two 2 three 在看一个普通循环的对比案例 for 循环使用 enumerate seq = ['one', 'two', 'three'] for i, element in enumerate(seq): print (i, element) 0 one 1 two 2 three seq = ['one', 'two', 'three'] for i, element in enumerate(seq,2): print (i, element) 2 one 3 two
22、eval()
**描述:**将字符串str 当成有效的表达式来求值并返回计算结果取出字符串中内容
**语法:**eval(expression[, globals[, locals]])
参数:
- expression – 表达式。
- globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
案例:
s = "1 + 3 +5" eval(s) 9 #要统计图片的数量 str1 = "['https://ww1.sin5n.jpg', 'https://ww1.siqk4he.jpg']" len(eval(str1)) 2 len(str1) 5
【超全面】Python内置函数详解(二):https://developer.aliyun.com/article/1540493