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。
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的内置函数的主要内容,如果未能解决你的问题,请参考以下文章