python的内置函数

Posted luffyitach

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的内置函数相关的知识,希望对你有一定的参考价值。

1、首先看一张内置函数的列表:

1.abs()函数 这个函数是用来返回一个变量的绝对值

 1 >>> a=-3
 2 >>> b=abs(a)
 3 >>> print(type(b),b)
 4 <class \'int\'> 3
 5 >>> c=-6+7j
 6 >>> d=abs(c)
 7 >>> print(type(d),d)    #这里是求一个复数的绝对值,返回它的模?
 8 <class \'float\'> 9.219544457292887
 9 >>> c=7-6j
10 >>> d=abs(c)
11 >>> print(d)
12 9.219544457292887

2、all()函数,可以向括号里传一个参数,这个参数必须是可迭代的,如果里面的可迭代对象里面的元素值为都真--True,那么整个all()函数才返回真,否则只要有一个值为假--False,那么就返回False

1 >>> a=[1,2,3,4]   #里面的值都为真
2 >>> b=all(a)
3 >>> print(b)
4 True                     #返回True
5 >>> c=[0,123,"",None]   #里面的0,“ ”,还有None都为假
6 >>> d=all(c)
7 >>> print(d)
8 False                                #返回False

3、any()函数,跟all()函数近乎相反,它是只要传入括号的可迭代对象的元素只要一个为真,那么就返回True, 全部为假,才返回False

 1 >>> c=[0,123,"",None]
 2 >>> d=all(c)
 3 >>> print(d)
 4 False                             
 5 #当列表c里面的元素只要一个为假那么all()就返回False
 6 >>> e=any(c)
 7 >>> print(e)
 8 True                              #这里可以看出any()函数返回True
 9 >>> f=[0,"",None]  
10 >>> e=any(f)
11 >>> print(e)
12 False                             
13 #如果可以看出可迭代对象f里面的元素全为假,才返回False

 4、basestring()函数,它是字符串和unicode万国码的父类,可以用来判断一个对象是否字符串或者unicode,isinstance(obj,basestring)等同于isinstance(obj,(str,unicode) ),这个用的比较少

5、关于进制转换的一些函数,bin()把十进制转换为二进制,oct()把十进制转换为八进制的数,hex()把十进制的数转换为16进制的数

 1 >>> a=5
 2 >>> b=bin(a)                 #把a转换成二进制的数,二进制的数以0b开头
 3 >>> print(b)
 4 0b101
 5 >>> c=oct(a)                 #把a转换成八进制的数,二进制的数以0开头
 6 >>> print(c)
 7 0o5                                 
 8 >>> d=hex(a)               #把a转换成16进制的数,二进制的数以0x开头
 9 >>> print(d)
10 0x5

6、bool(),返回一个bool值,判断一个数是真是假

7、chr(),unichr()与ord()函数,

 1 >>>help(chr())
 2 
 4     chr(i) -> character    
 5 
 6 
 7     Return a string of one character with ordinal i; 0 <= i < 256.
 8 
 9 
10 #参数是0 - 256 的一个整数,返回值是当前整数对应的ascii字符。参数可以是10进制也可以是16进制的形式
11 
12 #以下是十六进制:
13 >>> print chr(0x30), chr(0x31), chr(0x61)
14 0 1 a
15  
16 #以下是十进制:
17 >>> print chr(48), chr(49), chr(97)
18 0 1 a
19 
20  
21 >>>help(unichr())
22 
23 
24     unichr(i) -> Unicode character    
25     Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
26 
27 #unichr()和chr()函数功能基本一样, 只不过是返回unicode的字符
28 
29 >>>help(ord())
30     ord(c) -> integer
31     Return the integer ordinal of a one-character string.
32 
33 
34 #参数是一个ascii字符,返回值是对应的十进制整数
35 
36 >>> print ord(\'a\'), ord(\'0\'), ord(\'1\')
37 97 48 49
38 
39 >>> print "%x %x %x" % (ord(\'a\'), ord(\'0\'), ord(\'1\'))
40 61 30 31
41 >>> print "%#x %#x %#x" % (ord(\'a\'), ord(\'0\'), ord(\'1\'))
42 0x61 0x30 0x31
43 
44 #通过chr()和ord()联合起来使用,我们就可以对字符串进行相关运算的转换,比如一个字符串str1,转化成另一个字符串str2,使得 str2[i] = str1[i] - i
45 
46 >>>str1 = "eb;3ej8h"
47 >>> for i in range(0, len(str1)):
48 ...     print chr((ord(str1[i])-i)),
49 ... 
50 e a 9 0 a e 2 a

 8、int(),float(),str(),list(),tuple(),dict(),set()函数,这些都是工厂函数,

 1 #int()是创建一个整型对象,或者把一个对象转变为整型    ,float()是创建一个浮点对象,或者把一个对象转换为浮点数类型
 2 #str()是创建一个字符串对象,或者把一个对象转变为字符串类型
 3 #list()是创建一个列表对象,或者把一个对象转变为列表类型
 4 #tuple()是创建一个元组对象,或者把一个对象转变为元组类型
 5 #dict()是创建一个字典对象
 6 #set()是创建一个集合对象,或者把一个对象转变为集合
 7 >>> a="123"
 8 >>> b=int(a)        #把字符串a转变成整型b
 9 >>> b
10 123
11 >>> c=tuple(a)    
12 #把字符串a转变成元组c,并把字符串里面的字符迭代输出为元组c里面的元素
13 >>> c
14 (\'1\', \'2\', \'3\')
15 >>> d=list(a)       
16 #把字符串a转变成列表d,并把字符串里面的字符迭代输出为列表d里面的元素
17 >>> d
18 [\'1\', \'2\', \'3\']
19 >>> f=dict()             #创建一个空字典
20 >>> print(type(f))
21 <class \'dict\'>

22  >>> g=set(a)
#把字符串a转变成集合g,并把字符串里面的字符迭代输出为集合g里面的元素

  23  >>> print(g)
     {\'3\', \'2\', \'1\'}

9、cmp()函数,可以向括号里面传两个对象,比较两个对象的大小,cmp(a,b),如果a>b就返回1,a<b就返回-1,a=b就返回0,如果比较的两个对象里有字符串首先对比字符串,然后对比整型大小

 1 >>> a=["abc",123, "f"]
 2 >>> b=["g",345,]
 3 >>> c=cmp(a,b)
 4 >>> print(c)
 5 -1
 6 >>> d=[346,"b"]
 7 >>> cmp(d,b)
 8 -1
 9 >>> cmp(a,a)
10 0
11 >>> 

10、help()函数,返回的是你要查询的那个对象或者方法的具体细节详情

11、dir()快速查找一个对象类型里面的可用的函数方法

12、input()与rawinput(),input是输入一个整型数值,rawinput()输入一个字符串,python3.5.1版本只有input(),可输入数值与字符串,自动变为字符串

13、sum(),min(),max()分别是求和,求最小值、求最大值

>>> a=[1,2,3]
>>> sum(a)
6
>>> min(a)
1
>>> max(a)
3

14、range(),xrange(),py3.5.1中只有range(),3.5当中的range()就是2.7当中的xrange(),当不对它进行迭代的时候,它就只是一个类型,为了不占用系统内存,要对它进行迭代的时候才会输出打印

>>> a=range(9)
>>> a
range(0, 9)                   
>>> print(type(a))      
<class \'range\'>
>>> print(a)
range(0, 9)
>>> for i in range(9):
    print (i)

    
0
1
2
3
4
5
6
7
8

15、len()返回一个对象的长度,这个对象是一个容器,len()函数返回这个容器的长度,如a="123",那么len(a)就返回长度3

16、global()和local()告诉我们当前模块中全局变量和局部变量的数量

17、map(),filter()、reduce()函数(2.7有,3.5.1没有)

 1 1.map函数
 2 map函数会根据提供的函数对指定序列做映射。
 3 map函数的定义:
 4 map(function, sequence[, sequence, ...]) -> list
 5 通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。
 6 function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
 7 比如要对一个序列中的每个元素进行平方运算:
 8 map(lambda x: x ** 2, [1, 2, 3, 4, 5])
 9 返回结果为:
10 [1, 4, 9, 16, 25]
11 在参数存在多个序列时,会依次以每个序列中相同位置的元素做参数调用function函数。
12 比如要对两个序列中的元素依次求和。
13 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
14 map返回的list中第一个元素为,参数序列1的第一个元素加参数序列2中的第一个元素(1 + 2),
15 list中的第二个元素为,参数序列1中的第二个元素加参数序列2中的第二个元素(3 + 4),
16 依次类推,最后的返回结果为:
17 [3, 7, 11, 15, 19]
18 要注意function函数的参数数量,要和map中提供的集合数量相匹配。
19 如果集合长度不相等,会以最小长度对所有集合进行截取。
20 当函数为None时,操作和zip相似:
21 map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
22 返回结果为:
23 [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
24 
25 2.filter函数
26 filter函数会对指定序列执行过滤操作。
27 filter函数的定义:
28 filter(function or None, sequence) -> list, tuple, or string
29 function是一个谓词函数,接受一个参数,返回布尔值True或False。
30 filter函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果包含调用结果为True的元素。
31 返回值的类型和参数sequence的类型相同
32 比如返回序列中的所有偶数:
33 def is_even(x):
34 return x % 2 == 1
35 filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
36 返回结果为:
37 [1, 3, 5, 7, 9]
38 如果function参数为None,返回结果和sequence参数相同。
39 
40 3.reduce函数
41 reduce函数,reduce函数会对参数序列中元素进行累积。
42 reduce函数的定义:
43 reduce(function, sequence[, initial]) -> value
44 function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。
45 第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
46 reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
47 结果为21(  (((((1+2)+3)+4)+5)+6)  )
48 reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
49 结果为20
50 
51 注意function函数不能为None。
View Code

 18、divmod()函数,返回商和余数

 1 >>> divmod(6,3)
 2 (2, 0)                                   #用6除于3,返回商2和余数0
 3 >>> divmod(7,3)
 4 (2, 1)                                   #用7除于3,返回商2和余数1                      
 5 >>> divmod(7)
 6 #以下报错告诉我们这个函数要传入两个函数,除数和被除数
 7 Traceback (most recent call last):
 8   File "<pyshell#3>", line 1, in <module>
 9     divmod(7)
10 TypeError: divmod expected 2 arguments, got 1

19、eval()函数、 exec()函数和execfile()函数

1)eval():计算字符串中的表达式
2)exec():执行字符串中的语句
3)execfile():用来执行一个文件

1 >>> eval("2 - 2 * (90 - 30 + (50 /2*70-20+100))")
2 -3778.0
3 
4 >>> exec(\'print("i am good ")\')
5 i am good 
6 
7 >>>execfile(r"C:\\Users\\shaopeng\\Desktop\\py_homework\\DAY6\\PY1.py")
8 #执行我桌面的计算器函数

 

以上是关于python的内置函数的主要内容,如果未能解决你的问题,请参考以下文章

python有多少内置函数

VBS 环境下如何调用EXCEL内置函数

查找内置 Python 函数的源代码?

熟练掌握Python的内置函数,加快编程速度

python 内置函数

Python中的常用内置函数都有哪些呢?