• Python built-in 函数


    一、abs(x)

    说明:返回绝对值

    参数可以是:负数、正数、浮点数或者长整形

    实例:

    abs(-1.2) #返回 1.2
      
    abs(1.2) #返回 1.2
      
    abs(-11216.5) #返回 11216.5
      
    abs(11216.5) #返回 11216.5

     

    二、all(iterable)

    注意点:参数可以是负数也可以为正数。只会取绝对值,不会做取整。

    版本:该函数在python2.5版本首次出现,适用于2.5以上版本,包括python3,兼容python3版本。

    说明:如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;函数等价于:

    def all(iterable):
        for element in iterable:
            if not element:
                return False
        return True

    参数iterable:可迭代对象;

    示例:

    >>> all(['a', 'b', 'c', 'd'])  #列表list,元素都不为空或0
    True
    >>> all(['a', 'b', '', 'd'])  #列表list,存在一个为空的元素
    False
    >>> all([0, 1,2, 3])  #列表list,存在一个为0的元素
    False
      
    >>> all(('a', 'b', 'c', 'd'))  #元组tuple,元素都不为空或0
    True
    >>> all(('a', 'b', '', 'd'))  #元组tuple,存在一个为空的元素
    False
    >>> all((0, 1,2, 3))  #元组tuple,存在一个为0的元素
    False
      
      
    >>> all([]) # 空列表
    True
    >>> all(()) # 空元组
    True

     

    三、any(iterable)

    注意:空元组、空列表返回值为True,这里要特别注意

    版本:该函数适用于2.5以上版本,兼容python3版本。

    说明:如果iterable的任何元素不为0、''、False,all(iterable)返回True。如果iterable为空,返回False。函数等价于:

    注意比较该函数与all()函数的区别,any是任意,而all是全部。建议比较学习两者的区别与联系。

    def any(iterable):
    
       for element in iterable:
    
           if  element:
    
               return False
    
       return True

    参数iterable:可迭代对象;

    示例:

    >>> any(['a', 'b', 'c', 'd'])  #列表list,元素都不为空或0
    
    True
    
    >>> any(['a', 'b', '', 'd'])  #列表list,存在一个为空的元素
    
    True
    
    >>> any([0, '', False])  #列表list,元素全为0,'',false
    
    False
    
     >>> any(('a', 'b', 'c', 'd'))  #元组tuple,元素都不为空或0
    
    True
    
    >>> any(('a', 'b', '', 'd'))  #元组tuple,存在一个为空的元素
    
    True
    
    >>> any((0, '', False))  #元组tuple,元素全为0,'',false
    
    False
    
    >>> any([]) # 空列表
    
    False
    
    >>> any(()) # 空元组
    
    False

     

    四、basestring()

    说明:basestring是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例,isinstance(obj, basestring)等价于isinstance(obj, (str, unicode));

    版本:python2.3版本以后引入该函数,兼容python2.3以后python2各版本。注意:python3中舍弃了该函数,所以该函数不能在python3中使用。

    示例:

    >>> isinstance("Hello world", str)
    
    True
    
    >>> isinstance("Hello world", basestring)
    
    True
    
    >>> isinstance(u"你好", unicode)
    
    True
    
    >>> isinstance(u"你好", basestring)
    
    True

    来个实用的

    要检查某对象是否为字符串或 Unicode 对象,简单快速的办法是使用内建的 isinstance 和 basestring ,用法如下所示:

    def isAString(anobj):
    
       return isinstance(anobj, basestring)

    该函数还是比较有用的,但是一定要注意它的版本要求

    五、bin(x)

    中文说明:将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()并且返回值为integer;

    参数x:整数或者包含__index__()方法切返回值为integer的类型;

    版本:bin函数是python2.6中新增函数,使用时要注意版本问题。

    实例讲解:

    #整数的情况
    >>> bin(521)
    #这里的显示结果形式与我们平时习惯有些差别,主要是前面多了0b,这是表示二进制的意思。
    '0b1000001001'
    #非整型的情况,必须包含__index__()方法切返回值为integer的类型
    >>> class myType:
    ...   def __index__(self):
    ...     return 35
        
    >>> myvar = myType()
    >>> bin(myvar)
        
    '0b1000001001'

     PS:该函数非常简单,但是要注意版本,和参数类型

    六、bool([x])

    说明:将x转换为Boolean类型,如果x缺省,返回False,bool也为int的子类;

    参数x:任意对象或缺省;大家注意到:这里使用了[x],说明x参数是可有可无的,如果不给任何参数则会返回False。

    版本:在python 2.2.1中引入的新函数,在python2.3以后如果不传参数则返回False。

    注意:该函数在python3中也可正常使用

    实例:

    >>> bool(0)
    False
    >>> bool("abc")
    True
    >>> bool("")
    False
    >>> bool([])
    False
    >>> bool()
    False
    >>> issubclass(bool, int) #bool是一个subclass int
    True

     

    七、bytearray([source [, encoding [, errors]]])

    说明:bytearray([source [, encoding [, errors]]])返回一个byte数组。Bytearray类型是一个可变的序列,并且序列中的元素的取值范围为 [0 ,255]。

    参数source:

    如果source为整数,则返回一个长度为source的初始化数组;

    如果source为字符串,则按照指定的encoding将字符串转换为字节序列;

    如果source为可迭代类型,则元素必须为[0 ,255]中的整数;

    如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray.。

    版本:在python2.6后新引入,在python3中同样可以使用

    实例演示:

    >>> a = bytearray(3)
    >>> a
    bytearray(b'x00x00x00')
    >>> a[0]
      
    >>> a[1]
      
    >>> a[2]
      
    >>> b = bytearray("abc")
    >>> b
    bytearray(b'abc')
    >>> b[0]
       
    >>> b[1]
      
    >>> b[2]
      
    >>> c = bytearray([1, 2, 3])
    >>> c
    bytearray(b'x01x02x03')
    >>> c[0]
      
    >>> c[1]
      
    >>> c[2]
      
    >>> d = bytearray(buffer("abc"))
    >>> d
    bytearray(b'abc')
    >>> d[0]
      
    >>> d[1]
      
    >>> d[2]

    八、callable(object)

    说明:检查对象object是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

    注意:类是可调用的,而类的实例实现了__call__()方法才可调用。

    版本:该函数在python2.x版本中都可用。但是在python3.0版本中被移除,而在python3.2以后版本中被重新添加。

    代码实例:

    >>> callable(0)
    False
    >>> callable("mystring")
    False
    >>> def add(a, b):
    …     return a + b
    …
    >>> callable(add)
    True
    >>> class A:
    …      def method(self):
    …         return 0
    …
    >>> callable(A)
    True
    >>> a = A()
    >>> callable(a)
    False
    >>> class B:
    …     def __call__(self):
    …         return 0
    …
    >>> callable(B)
    True
    >>> b = B()
    >>> callable(b)
    True
     

    九、chr(i)--ord()

    说明:返回整数i对应的ASCII字符。与ord()作用相反。

    参数x:取值范围[0, 255]之间的正数。

    版本:该函数在python2和python3各个版本中都可用。不存在兼容性问题。

    代码实例

    >>> chr(97)
    'a'
    >>> chr(98)
    'b'
    >>> ord('a')
    97
    >>> ord('b')
    98

    ps:呵呵,这个函数和php里面的用法是一样的哦

    十、classmethod(function)

    说明:classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下:

    class C:
        @classmethod
        def f(cls, arg1, arg2, ...): ...


    版本python2.2中新增,在python2.4中增加新功能。python3中仍可用。类方法既可以直接类调用(C.f()),也可以进行实例调用(C().f())。

    代码实例:

    >>> class C:
    ...     @classmethod
    ...     def f(self):
    ...             print "This is a class method"
    ...
    >>> C.f()
    This is a class method
    >>> c = C()
    >>> c.f()
    This is a class method
    >>> class D:
    ...     def f(self):
    ...             print " This is not a class method "
    ...
    >>> D.f()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unbound method f() must be called with D instance as first argument (got nothing instead)
    >>> d = D()
    >>> d.f()
    This is not a class method

    十一、cmp(x, y)

    说明:比较两个对象x和y,如果x < y ,返回负数;x == y, 返回0;x > y,返回正数。

    版本:该函数只有在python2中可用,而且在python2所有版本中都可用。但是在python3中该函数已经被删减掉,这点要特别注意。

    代码示例:

    >>> cmp(1, 2)
    -1
    >>> cmp(1, 1)
    0
    >>> cmp(5, 2)
    1
    >>> cmp('abcd','a')
    1
    #注意:这时候它会先比较第一个字符,然后比较第二个字符,逐个比较知道能判断出大小为止。

    十二、compile(source, filename, mode[, flags[, dont_inherit]])

    说明:将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。

    参数source:字符串或者AST(Abstract Syntax Trees)对象。

    参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。

    参数model:指定编译代码的种类。可以指定为 ‘exec’,’eval’,’single’。

    参数flag和dont_inherit:这两个参数暂不介绍,可选参数。

    版本:在python2.3、2.6、2.7、3.2中均有不同,使用时要引起注意,兼容python3

    代码示例:

    >>> code = "for i in range(0, 10): print i"
    >>> cmpcode = compile(code, '', 'exec')
    >>> exec cmpcode
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> str = "3 * 4 + 5"
    >>> a = compile(str,'','eval')
    >>> eval(a)
    17

    十三、complex([real[, imag]])

    说明:创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。

    参数real: int, long, float或字符串;

    参数imag: int, long, float。

    代码实例:

    >>> complex(1, 2)
    (1 + 2j)
    #数字
    >>> complex(1)
    (1 + 0j)
    #当做字符串处理
    >>> complex("1")
    (1 + 0j)
    #注意:这个地方在“+”号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
    >>> complex("1+2j")
    (1 + 2j)

    十四、dir()

    说明

    不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

    你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

    当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

    首先,我们来看一下在输入的sys模块上使用dir。我们看到它包含一个庞大的属性列表。

    接下来,我们不给dir函数传递参数而使用它——默认地,它返回当前模块的属性列表。注意,输入的模块同样是列表的一部分。

    为了观察dir的作用,我们定义一个新的变量a并且给它赋一个值,然后检验dir,我们观察到在列表中增加了以上相同的值。我们使用del语句删除当前模块中的变量/属性,这个变化再一次反映在dir的输出中。

    关于del的一点注释——这个语句在运行后被用来 删除 一个变量/名称。在这个例子中,del a,你将无法再使用变量a——它就好像从来没有存在过一样。

    参数object: 对象、变量、类型。

    版本:该函数在python各个版本中都有,但是每个版本中显示的属性细节有所不同。使用时注意区别。

    代码实例:

    >>> import struct
    >>> dir()   # show the names in the module namespace
    ['__builtins__', '__doc__', '__name__', 'struct']
    >>> dir(struct)   # show the names in the struct module
    ['Struct', '__builtins__', '__doc__', '__file__', '__name__',
     '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
     'unpack', 'unpack_from']
    >>> class Shape(object):
            def __dir__(self):
                return ['area', 'perimeter', 'location']
    >>> s = Shape()
    >>> dir(s)
    ['area', 'perimeter', 'location']

    十五、delattr(object, name)

    说明:删除object对象名为name的属性。这个函数的命名真是简单易懂啊,和jquery里面差不多,但是功能不一样哦,注意一下。

    参数object:对象。

    参数name:属性名称字符串。

    版本:各版本中都支持该函数,python3中仍可用。

    代码实例:

    >>> class Person:
    ...     def __init__(self, name, age):
    ...             self.name = name
    ...             self.age = age
    ...
    >>> tom = Person("Tom", 35)
    >>> dir(tom)
    ['__doc__', '__init__', '__module__', 'age', 'name']
    >>> delattr(tom, "age")
    >>> dir(tom)
    ['__doc__', '__init__', '__module__', 'name']


    十六、divmod(a,b)函数

    说明:

    divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数

    返回结果类型为tuple

    参数:a,b可以为数字(包括复数)

    版本:在python2.3版本之前不允许处理复数,这个大家要注意一下

    代码实例:

    >>> divmod(9,2)
    (4, 1)
    >>> divmod(11,3)
    (3, 2)
    >>> divmod(1+2j,1+0.5j)
    ((1+0j), 1.5j)
  • 相关阅读:
    NO OO NO LIFE:OO第二单元总结
    凡为过往,皆是序章——软工全系列个人总结
    Think on 小黄衫
    软工-结对编程作业#3
    你问我答,不亦乐乎——软工案例分析作业
    软工-结对编程作业#2
    软工-结对编程作业#1
    道法之间——软工第2次博客作业
    软工-个人阅读作业#1
    OO_Unit4 UML模型化设计总结
  • 原文地址:https://www.cnblogs.com/SunnyZhu/p/5586749.html
Copyright © 2020-2023  润新知