zoukankan      html  css  js  c++  java
  • 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:UsersshaopengDesktoppy_homeworkDAY6PY1.py")
    8 #执行我桌面的计算器函数
  • 相关阅读:
    在桌面创建robotframework Ride的快捷方式启动RIDE
    RIDE 接口自动化请求体参数中文时报错:“UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 9......”
    下拉框选择
    Python下安装MySQLdb模块
    出现 Request Entity Too Large问题的解决方法
    Centos配置nginx反向代理8090端口到80端口
    超简单Centos+Docker+Halo搭建java向博客
    JAVA使用POI如何导出百万级别数据
    Mybatis的MapperRegistry错误
    Navicat连接mysql8出现1251错误
  • 原文地址:https://www.cnblogs.com/wspcoding/p/5559500.html
Copyright © 2011-2022 走看看