Python基础(七)内置函数
今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数:

下面就一一介绍一下内置函数的用法:
1、abs()
返回一个数值的绝对值,可以是整数或浮点数等。
|
1
2
3
4
5
6
|
print(abs(-18)) print(abs(0.15))result:180.15 |
2、all(iterable)
如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False。
|
1
2
3
4
5
6
7
8
9
10
11
|
print(all(['a','b','c','d'])) #列表list,元素都不为空或0,返回TrueTrueprint(all(['a','b','','d'])) #如果存在一个为空的元素,返回FalseFalseprint(all([0,1,2,3])) #如果存在为0的元素,同样返回FalseFalseprint(all([])) #空元组和空列表返回值为TrueTrueprint(all(()))True |
3、any(iterable)
如果iterable的任何元素不为0、''、False,all(iterable)返回True,如果iterable为空,返回Fasle。
注意:此函数与all()函数的在于,any()函数中有任意一个元素为0、''、False不影响整体,会返回True,而all()函数中必须是全部不包含特殊元素才会返回True,只要有一个特殊元素,会直接返回False.
|
1
2
3
4
5
6
7
8
9
10
|
print(any(['a','b','c','d'])) #列表list,元素都不为空或0Trueprint(any(['a','b','','d'])) #列表list,存在一个为空的元素,返回TrueTrueprint(any([0,False])) #如果元素全部是0,Fasle,返回FasleFalseprint(any([])) #any函数中空列表和空元组返回FasleFalseprint(any(()))False |
4、bin()
将一个整数转换成一个二进制字符串,结果以'0b'为前缀。
|
1
2
3
4
5
6
7
8
|
print(bin(32)) #将十进制转换成二进制print(bin(64))print(bin(128))result:0b1000000b10000000b10000000 |
5、hex()
将一个整数转换成一个小写的十六进制字符串,结果以'0x'为前缀。
|
1
2
3
4
5
6
|
print(hex(255)) #将整数转换成十六进制print(hex(192))result:0xff0xc0 |
6、oct()
将一个整数转换成八进制的字符串,结果以'0o'为前缀。
|
1
2
3
4
5
6
|
print(oct(255)) #将整数转换成八进制print(oct(192))result:0o3770o300 |
7、bool()
返回一个布尔值,True或False。
|
1
2
3
4
5
6
7
8
|
print(bool()) #bool值缺省为FalseFalseprint(bool(0))Falseprint(bool('jack'))Trueprint(bool(""))False |
8、bytes()
将一个字符串转换成你想要的编码格式的字节。
|
1
2
3
4
5
|
print(bytes('你好',encoding='utf-8')) #将字符串转换成utf-8编码格式的字节b'\xe4\xbd\xa0\xe5\xa5\xbd' print(bytes('你好',encoding='gbk')) #将字符串转换gbk编码格式的字节b'\xc4\xe3\xba\xc3' |
9、chr()
介绍chr()函数之前先看一下ASCII码对照表:

chr()函数就是返回整数对应的ASCII码对照表里的字符,取值范围[0~255]之间的正数。
ord()函数作用正好和chr()函数相反,不再介绍,请看下面例子:
|
1
2
3
4
5
6
7
8
9
|
n = chr(65) #根据十进制找到在ascii码里对应的字符print(n)result:Aa= ord("a") #根据字符找到在ascii码里对应的十进制print(a)result:97 |
10、compile(source,filename,mode)
将source编译为,代码对象能够通过exec语句来执行或者eval()进行求值。
source:字符串或者对象;
filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值;
model:编译代码的种类,可以指定为'exec','eval','single'。
|
1
2
3
4
5
6
|
code="for i in range(0,10):print(i)" cmpcode = compile(code,'','exec') #可以将字符串转换成python代码执行print(cmpcode)result:<code object <module> at 0x000002A54E938ED0, file "", line 1> |
11、exec()
exec语句用来执行储存在字符串或文件中的Python语句。
|
1
2
3
4
|
exec("print('hello,world')") #执行exec()里的python语句result:hello,world |
12、eval()
eval()函数将字符串str当成有效的表达式来求值并返回计算结果。
|
1
2
3
4
5
6
7
8
9
|
ret = eval("8*8") #执行表达式并返回结果print(ret)#result:64t = exec("8*8") #执行python代码,可以接收或字符串,没有返回值print(t)#result:None |
13、divmod(a,b)
divmod(a,b)方法是计算a,b的商和余数,即:a//b 余几,返回结果为元组。以后做网页翻页的时候会。
|
1
2
3
4
5
|
num = divmod(9,2) #9//2print(num)#result:(4,1) #结果为商4余1 |
14、enumerate(iterable,start=0)
返回一个枚举对象。iterable必须是序列,迭代器,或者其他支持迭代的对象。
|
1
2
3
4
5
6
7
8
9
10
|
dic = {'name':'jack', 'age':18, 'sex':'boy',}for i in enumerate(dic.keys(),start=0): print(i)#result:(0, 'name')(1, 'sex')(2, 'age') |
15、filter()
对于序列中的元素进行筛选,最终获取符合条件的序列。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
filter() #循环第二个参数,让每个循环元素执行函数,如果函数返回值为True,表示元素合法filter内部实现方法:for item in 第二个参数: r = 第一个参数(item) if r: result(item)return result#例:def f1(args): if args>22: return Trueli=[11,22,33,44]ret = filter(f1,li) print(list(ret)) #返回值为一个迭代器,所以使用list()函数来返回 |
像上面这种简单的函数可以使用lambda函数来执行:
|
1
2
3
|
li = [11,22,33,44]ret = filter(lambda a:a>22,li) #通过lambda函数处理,lambda是有返回值的,条件成立返回Trueprint(list(ret)) |
16、map(函数,可迭代的对象)
遍历序列,对序列中每个元素进行操作,最终获取新的列表。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
li = [11,22,33,44]new_list = map(lambda a:a+100,li)print(new_list)#result:[110,122,133,144]li = [11, 22, 33]sl = [1, 2, 3]new_list = map(lambda a, b: a + b, li, sl)print(list(new_list))#result:[12, 24, 36] |
17、reduce()
对于序列内所有元素进行累计操作:
|
1
2
3
4
5
6
|
li = [11,22,33]result = reduce(lambda arg1,arg2:arg1 + arg2,li)print result#result: #注意在Python3中已经没有了reduce函数66 |
18、isinstance()
判断对象是不是类的实例。
|
1
2
3
4
5
6
|
li = [11,22,33]n = isinstance(li,list) #判断li是不是list类的实例print(n) #result:True #返回True/False |
19、len()
判断字符串长度。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
s = "你好"print(len(s)) #在python3中len函数既可以取的字符的长度,也可以取字节的长度 #python2.*中len函数只可以取字节的长度#result:2s = "你好"b = bytes(s,encoding='utf-8')print(len(b))#result:6分别使用2.*和3.*循环“你好”,查看结果:2.7 for 循环“你好” #输出6个空字符3.5 for 循环“你好”查看结果 #输出"字符串结果" |
20、max()、min()、sum()
max():取最大值; min():取最小值; sum():取总的值
|
1
2
3
4
5
6
7
|
li=[11,22,33]print(max(li)) #最大值33print(min(li)) #最小值11print(sum(li)) #总和66 |
21、pow(x,y)
pow()返回x的y次方的值。
|
1
2
3
4
|
print(pow(2,3)) #计算2的3次方8print(pow(2,4)) #计算2的4次方16 |
22、round()
round() 方法返回浮点数x的四舍五入值。
|
1
2
3
4
|
print(round(2.3)) #四舍五入2print(round(2.8))3 |
23、random()
random方法返回随机生成的一个实数,它在[0,1]范围内。
|
1
2
3
4
|
import randomprint('random:',random.random())#result: random: 0.7037348886029884 |
24、choice()
choice()方法返回一个列表,元组或字符串的随机项。
|
1
2
3
4
5
6
7
8
9
|
import random#取列表或元组的随机值print("choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9]))print("choice('A String') : ", random.choice('A String'))#result:choice([1, 2, 3, 5, 9]) : 9 #执行一次值会变一次choice('A String') : i |
25、randrange()
返回指定递增基数集合中的一个随机数,基数缺省值为1,听这个意思不是太好理解,下面举例说明:
|
1
2
3
4
5
6
7
8
9
10
|
import random#随机输出100到1000间的偶数print("rangrange(100,1000,2):",random.randrange(100,1000,2))#随机输出100到1000间的其他数print("rangrange(100,1000,2):",random.randrange(100,1000,3))#result:rangrange(100,1000,2): 260rangrange(100,1000,2): 511 |
下面将上面三个函数放在一起,来做一道题,生成6位的随机数,其中包括大写字母,数字?
|
1
2
3
4
5
6
7
8
9
|
import randomli= []for i in range(6): #循环6次 temp = random.randrange(65,91) #random随机数从ascii码里取65到91 c = chr(temp) #将随机数找到ascii码表里找到具体字符 li.append(c) #追加到空列表里result = "".join(li) #再用join的方式将列表转换成字符串print(result) #结果全是大写字母 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
li = [] #定义空列表for i in range(6): #循环6次 r= random.randrange(0,5) #生成一个0-4的随机值,然后根据r的值判断数字出现的位置 if r ==2 or r==4: #如果第一次循环r==2或者4的时候,条件满足,在列表里随机添加一个数字 num = random.randrange(0,10) #生成一个0-9的随机数 li.append(str(num)) else: temp = random.randrange(65,91) #如果上面条件不成立,添加字符串 c = chr(temp) li.append(c)result = "".join(li)print(result) |
26、zip()
利用每个可迭代元素,制作一个迭代器来聚合元素。
|
1
2
3
4
5
6
7
8
9
|
l1 = ['北京',11,22,33]l2 = ['欢迎',11,22,33]l3 = ['你',11,22,33]r=zip(l1,l2,l3)#print(list(r)) # [('北京', '欢迎', '你'), (11, 11, 11), (22, 22, 22), (33, 33, 33)]temp = list(r)[0]ret ="".join(temp)print(ret) |
今天的内置函数就介绍到这,由于还没有学习面向对象编程,一些内置函数会在学完面向对象编程以后,在更新。

浙公网安备 33010602011771号