Python基础(七)内置函数

    

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

Python基础(七)内置函数_第1张图片

下面就一一介绍一下内置函数的用法:

    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码对照表:

Python基础(七)内置函数_第2张图片

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:
object 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: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)

今天的内置函数就介绍到这,由于还没有学习面向对象编程,一些内置函数会在学完面向对象编程以后,在更新。



转载于:https://www.cnblogs.com/phennry/p/5544509.html

你可能感兴趣的:(Python基础(七)内置函数)