加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python3 内置函数

发布时间:2021-07-06 05:59:15 所属栏目:大数据 来源: https://blog.csdn.net/yilovex
导读:转载申明:http://songlee24.github.io Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍。有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解。 1、 abs(x) : 返回一个整数或浮点数的绝

转载申明:http://songlee24.github.io


Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍。有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解。

1、abs(x)返回一个整数或浮点数的绝对值,如果是复数,返回它的模。

2、all(iterable):当 iterable 中所有元素都为 True 时(或者 iterable 为空),返回 True 。

3、any(iterable):当 iterable 中有元素为 True 时,则返回 True 。如果 iterable 为空,返回 False 。

4、ascii(object):类似于repr(),返回一个输入对象的可打印的字符串。

5、bin(x):将整数 x 转化为一个二进制字符串。当 x 不是 int 对象时,x 必须实现__index__()方法来返回一个整型数值。

[python]? view plain ?copy
  1. >>>?bin(9)??
  2. '0b1001'??

6、bool(x):将一个值转换成一个boolean类型的值,省略 x 将返回 False。

copy
    >>>?bool()??
  1. False??
  2. >>>?bool('fedora')??
  3. True??
7、bytearray() ?bytearray的构造函数。bytearray类型是一个可变的整数序列(0 <= 整数 < 256),即字节数组,例如:

copy

    >>>?a?=?bytearray(b'after')??
  1. >>>?list(a)???#?convert?a?bytearray?object?into?a?list?of?integers??
  2. [97,?102,?116,?101,?114]??
8、bytes()?字节对象(bytes object)的构造函数。bytes是bytearray的 不可变 版本:

copy

    >>>?a?=?bytes('after',?'UTF-8')??
  1. #?convert?a?bytes?object?into?a?list?of?integers??
  2. 9、callable(object)判断一个对象是否可调用,如果一个实例的类实现了 call ()方法,则它是可以调用的。

    copy

      >>>?f?=?lambda?x,y?:?x+y??
    1. >>>?callable(f)???#?f是函数对象,可调用??
    2. True??
    3. >>>?a?=?10???#?a?不可调用??
    4. >>>?callable(a)??
    5. False??
    10、chr(i)返回编码值 i 对应的字符(str类型),i 的有效值为 0 到 1114111。与 ord() 正好相反。

    copy

      >>>?chr(97)??
    1. 'a'??

    11、classmethod(function):返回一个类方法。

    12、compile():编译一个源,返回一个代码对象,该代码对象可以用来作为exec()或者eval()的参数。

    13、complex(re,im):复数的构造函数,re 为返回复数对象的实数部分,im 为虚数部分。

    14、delattr(object,name):删除一个对象的属性,相当于del object.name

    15、dict():字典类型的构造函数。

    16、@L_301_18@:返回一个包含了 object 所有属性的列表对象,如果没有参数,则包含当前作用域的所用属性。

    17、divmod(a,b):返回一个元组(a//b,a%b)

    18、enumerate(iterable,start=0):返回一个可迭代的 enumerate object,对其使用 next() 得到的是包含索引和元素的tuple,通常用于同时遍历索引和元素:

    copy
      >>>?seasons?=?['Spring',?'Summer',?'Fall',?'Winter']??
    1. >>>?list(enumerate(seasons))??
    2. [(0,?'Spring'),?(1,?'Summer'),?(2,?'Fall'),?(3,?'Winter')]??
    3. ??
    4. >>>?for?x?in?enumerate(seasons):???#?遍历??
    5. ...?????print(x,?end='?')??
    6. ...???
    7. (0,?'Spring')?(1,?'Summer')?(2,?'Fall')?(3,?'Winter')??
    相当于:

    copy

      def?enumerate(sequence,?start=0):??
    1. ????n?=?start??
    2. ????for?elem?in?sequence:??
    3. ????????yield?n,?elem??
    4. ????????n?+=?1??
    19、eval()执行一段代码,返回执行的结果。

    copy

      >>>?x?=?1??
    1. >>>?eval('x+1')??
    2. 2??
    20、exec()也是执行一段代码,返回None。

    copy

      >>>?exec('x?+=?10')??
    1. >>>?x??
    2. 11??
    21、filter(function,iterable)过滤器,返回由使函数 function 返回True的 iterable 元素组成的迭代器。

    copy

      >>>?lst?=?[1,?2,?3,?4,?5,?6,?7,?8]??
    1. >>>?f?=?lambda?x:?x%2==0??
    2. >>>?list(filter(f,?lst))??
    3. [2,?8]??

    22、float(x):返回一个浮点型的对象,无参时返回0.0

    23、format(value[,spec]):格式化一个值,当参数是一个自定义对象的时候,该对象需要实现__format__()方法。

    copy
      >>>?format(3.1415926,?'7.3g')??
    1. '???3.14'??

    24、frozenset():?frozenset 的构造函数。顾名思义,frozenset是一种 set 类型,且不可改变(没有add、remove等方法)。

    25、getattr(object,name):获得对象的name属性,当该属性不存在的时候可以使用一个默认值作为返回值。

    26、globals():返回一个包含当前所有全局符号和对应值的字典。

    27、hasattr(object,name):判断对象是否有name属性。

    28、hash(object):返回对象的 hash 值,object 必须是可哈希的。注意:所有不可变的内置类型都是 hashable 的,比如 string,tuple;所有可变的内置类型都是 unhashable 的,比如 list,dict(即没有__hash__()方法)。

    29、help():查看一个对象的帮助文档。

    30、hex(x):将一个整数转为小写的十六进制字符串(以’0x’开头),如果不是int对象,需要定义 __index__()方法。

    31、id():返回一个对象的 id 身份,可以看作该对象的内存地址。

    32、input():读取一行输入并返回一个字符串。

    33、int(x,base=10):返回相应进制的 int 值。

    34、isinstance(object,class):判断对象 object 是不是类 class 或其派生类的实例。

    35、issubclass(class,baseclass):判断一个类是否是另一个类的子类。

    36、iter():返回一个可迭代的对象。

    37、len():返回一个长度值,与 object 中的__len__()有关。

    38、list():?list 的构造函数。

    39、locals():返回一个包含当前局部符号和对应值的字典,与globals()?对应。

    40、map(function,iterable):映射函数,将 iterable 中的每个元素应用到 function 函数,返回由所有结果组成的迭代器。

    copy
      >>>?it?=?map(lambda?x:?x*2,?[1,2,3,4])??
    1. >>>?list(it)??
    2. [2,0)">41、max():最大值。

      42、min():最小值。

      43、memoryview(obj):返回一个 memory view 对象。

      44、next(iterator):产生下一个生成值,与__next__()有关。

      45、object():略。

      46、oct(x):将一个整数转为一个八进制字符串。如果不是 int 对象,需要定义__index__()方法。

      47、open():打开一个文件,返回对应的文件对象。

      48、ord(c):返回字符 c 的编码值,与chr(i)相反。

      copy
        >>>?ord('a')??
      1. 97??

      49、pow(x,y[,z])pow(x,y)相当于x**ypow(x,y,z)相当于pow(x,y) % z

      50、print():打印输出。

      51、property(fget=None,fset=None,fdel=None,doc=None):函数 property() 的作用就是把类中的方法当作属性来访问。看下面的例子:

      copy
        class?C:??
      1. ????def?__init__(self):??
      2. ????????self.__x?=?None??
      3. def?getx(self):??
      4. return?self.__x??
      5. ??
      6. def?setx(self,?value):??
      7. ????????self.__x?=?value??
      8. def?delx(self):??
      9. del?self.__x??
      10. ??????????
      11. ????x?=?property(getx,?setx,?delx,?"I'm?the?'x'?property.")??
      为了操作数据成员 __x,我们需要使用 getx、setx、delx 方法,很麻烦。但是如果通过 property 函数将方法绑定到成员x,那么当获取成员x的值时,就会调用getx函数;当给成员x赋值时,就会调用setx函数;当删除x时,就会调用delx函数:

      copy

        c?=?C()??
      1. print(c.x)????#?相当于c.getx()??
      2. c.x?=?20??????#?相当于c.setx(20)??
      3. del?c.x???????#?相当于c.delx()??

      这样通过 x 间接调用方法操作 __x 就方便多了。

      52、range(start,stop[,step]):返回一个序列。

      53、repr(object):将对象转化为可打印的字符串。

      54、reversed():倒序序列,对象需要实现__reversed__()方法。

      55、round(number[,ndigits]):把浮点数转变成指定小数位数的数,ndigits默认为0。

      copy
        >>>?round(1.75368,?3)??
      1. 1.754??

      56、set():?set 的构造函数。

      57、setattr(object,name,value):为一个对象的name属性设置一个value值。

      58、slice(start,step]):切片函数,分割一个可分割的对象,返回其中的一部分。

      59、sorted():排序。

      60、staticmethod(function):返回一个静态的方法。要知道,一个类的静态方法没有隐式的第一个 self 参数,因为静态方法是独立于实例对象的:

      copy
        ????@staticmethod??
      1. def?f(arg1,?arg2,?...):?...??

      61、str():字符串的构造函数。

      62、sum():求和。

      63、super():?super() 常用于继承中调用父类的方法。例如,类的继承中,通常需要调用父类的构造方法,以初始化父类部分,有两种方法能达到这个目的。

      方法一:调用未绑定的父类构造方法

      copy
        class?A:??
      1. ????????self.a?=?'A_method'??
      2. class?B:??
      3. ????????self.b?=?'B_method'??
      4. class?C(A,?B):??
      5. ????????A.__init__(self)??
      6. ????????B.__init__(self)??
      7. ????????#?...其他超类??
      8. ????????self.c?=?'C_method'??
      方法二: 使用super函数

      copy

        ????????super().__init__()??
      1. ????????self.a?=?'A_method'??
      2. class?B:??
      3. def?__init__(self):??
      4. ????????super().__init__()??
      5. ????????super().__init__()????#?等价于super(C,self).__init__()??
      6. ????????self.c?=?'C_method'??

      可以看出,方法一更直观,但是方法二使用 super 函数可以一次初始化所有超类(但要确保所有的超类的构造方法都使用了super函数)。当继承结构很复杂时,方法二明显更适用,当然 super 不仅可以用于构造方法还可以用于其他方法。

      使用 super 还有一个好处,就是当改变父类名时,不需要再去修改其他地方,便于代码的维护。

      64、tuple():元组的构造函数。

      65、type():返回一个对象的类型,返回值与object.__class__一样。

      66、vars(object):返回 object 中所有属性与对应值的字典。没有参数时作用和locals()一样。

      67、zip():?zip 函数接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组)。

      68、__import__():通过import语句调用。



      附:reduce函数

      在Python 3里,@L_404_72@函数已经被从全局名字空间里移除了,它现在被放置在functools模块里。函数原型如下:

      copy
      1. reduce(function,?iterable[,?initializer])??
      function 必须是二元函数, 在省略第三个参数的情况下 ,函数先对 iterable 中的第1,2个数据进行操作,得到的结果再与第三个数据用 function() 函数运算……依次类推,最后得到一个结果。 如果初始值 initializer 给定 ,第一次调用会是 initializer 和第一个元素而不是序列的头两个元素。

      copy

        >>>?from?functools?import?reduce??
      1. >>>?reduce(4,5])??
      2. 15??
      3. 5],?10)??
      4. 25??
      map用于映射,reduce用于归并。

      (全文完)


      (编辑:北几岛)

      【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读