今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数:
下面就一一介绍一下内置函数的用法:
1、abs()
返回一个数值的绝对值,可以是整数或浮点数等。
1
2
3
4
5
6
|
print
(
abs
(
-
18
))
print
(
abs
(
0.15
))
result:
18
0.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,返回True
True
print
(
all
([
'a'
,
'b'
,'
','
d']))
#如果存在一个为空的元素,返回False
False
print
(
all
([
0
,
1
,
2
,
3
]))
#如果存在为0的元素,同样返回False
False
print
(
all
([]))
#空元组和空列表返回值为True
True
print
(
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,元素都不为空或0
True
print
(
any
([
'a'
,
'b'
,'
','
d']))
#列表list,存在一个为空的元素,返回True
True
print
(
any
([
0
,
False
]))
#如果元素全部是0,Fasle,返回Fasle
False
print
(
any
([]))
#any函数中空列表和空元组返回Fasle
False
print
(
any
(()))
False
|
4、bin()
将一个整数转换成一个二进制字符串,结果以'0b'为前缀。
1
2
3
4
5
6
7
8
|
print
(
bin
(
32
))
#将十进制转换成二进制
print
(
bin
(
64
))
print
(
bin
(
128
))
result:
0b100000
0b1000000
0b10000000
|
5、hex()
将一个整数转换成一个小写的十六进制字符串,结果以'0x'为前缀。
1
2
3
4
5
6
|
print
(
hex
(
255
))
#将整数转换成十六进制
print
(
hex
(
192
))
result:
0xff
0xc0
|
6、oct()
将一个整数转换成八进制的字符串,结果以'0o'为前缀。
1
2
3
4
5
6
|
print
(
oct
(
255
))
#将整数转换成八进制
print
(
oct
(
192
))
result:
0o377
0o300
|
7、bool()
返回一个布尔值,True或False。
1
2
3
4
5
6
7
8
|
print
(
bool
()) #bool值缺省为False
False
print
(
bool
(
0
))
False
print
(
bool
(
'jack'
))
True
print
(
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:A
a
=
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:
|
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:64
t
=
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//2
print
(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
True
li
=
[
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是有返回值的,条件成立返回True
print
(
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:2
s
=
"你好"
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))
#最大值
33
print
(
min
(li))
#最小值
11
print
(
sum
(li))
#总和
66
|
21、pow(x,y)
pow()返回x的y次方的值。
1
2
3
4
|
print
(
pow
(
2
,
3
))
#计算2的3次方
8
print
(
pow
(
2
,
4
))
#计算2的4次方
16
|
22、round()
round() 方法返回浮点数x的四舍五入值。
1
2
3
4
|
print
(
round
(
2.3
))
#四舍五入
2
print
(
round
(
2.8
))
3
|
23、random()
random方法返回随机生成的一个实数,它在[0,1]范围内。
1
2
3
4
|
import
random
print
(
'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
):
260
rangrange(
100
,
1000
,
2
):
511
|
下面将上面三个函数放在一起,来做一道题,生成6位的随机数,其中包括大写字母,数字?
1
2
3
4
5
6
7
8
9
|
import
random
li
=
[]
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)
|
今天的内置函数就介绍到这,由于还没有学习面向对象编程,一些内置函数会在学完面向对象编程以后,在更新。