暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python内置函数

心在远方AND走在路上 2021-08-21
252

一、Python常用内置函数介绍

 

1、abs() 函数返回数字的绝对值。

    # abs(x) x -- 数值表达式,可以是整数,浮点数,复数。
    #
    print("-26的绝对值为:",abs(-26)) # -26的绝对值为:26
    #

    2、dict() 函数用于创建一个字典。

      # dict 语法:
      #
      # class dict(**kwarg)
      # class dict(mapping, **kwarg)
      # class dict(iterable, **kwarg)
      # 参数说明:
      #
      # **kwargs -- 关键字
      # mapping -- 元素的容器。
      # iterable -- 可迭代对象。
      #
      print("创建空字典:", dict()) #创建空字典:{}
      print("传入关键字: ", dict(a='a', b='b', t='t')) # 传入关键字: {'a': 'a', 'b': 'b', 't':'t'}
      print(dict(zip(['one', 'two', 'three'], [1, 2, 3]))) # 映射函数方式来构造字典 {'one': 1, 'two': 2, 'three': 3}
      print(dict([('one', 1), ('two', 2), ('three', 3)]))
      # 可迭代对象方式来构造字典 {'one': 1, 'two': 2,'three': 3}
      #

       3、help() 函数用于查看函数或模块用途的详细说明。

        # help([object])
        #
        a =list()
        print(help(a.append)) # 显示list的append方法的帮助
        # Help on built-in function append:
        # append(object, ) method of builtins.list instance
        # Append object to the end of the list.
        #
        # None
        #

         4、min() 方法返回给定参数的最小值,参数可以为序列。

          # min( x, y, z, .... )
          #
          print ("min(-20, 100, 400) : ", min(-20, 100, 400)) # -20
          #
          #

          5、setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

            # setattr(object, name, value)
            # 参数
            # object -- 对象。
            # name -- 字符串,对象属性。
            # value -- 属性值。
            #
            # 如果属性不存在会创建一个新的对象属性,并对属性赋值
            class A():
            name = yc1993


            a = A()
            setattr(a, age, 28)
            print(a.age) # 28
            #

             6、all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。

              # 元素除了是 0、空、None、False 外都算 True。
              # 函数相当于:
              def all(iterable):
              for element in iterable:
              if not element:
              return False
              return True
              # all(iterable) # iterable -- 元组或列表
              print(all(['a', 'b', 'c', 'd'])) #列表list,元素都不为空或0 True
              print( all(['a', 'b', '', 'd'])) #列表list,存在一个为空的元素 False
              print(all([0, 1, 2, 3])) # 列表list,存在一个为0的元素 False
              print(all([])) # 空列表 True
              print(all(())) # 空列表 True

               7、hex() 函数用于将一个指定数字转换为 16 进制数。

                # hex(x) x -- 一个整数
                print("789的16进制数为:",hex(789)) # 789的16进制数为:0x315
                #

                 8、next() 返回迭代器的下一个项目。

                  # next() 函数要和生成迭代器的 iter() 函数一起使用。
                  # next(iterable[, default])
                  # 参数说明:
                  #
                  # iterable -- 可迭代对象
                  # default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发StopIteration 异常。
                  #
                  # 首先获得Iterator对象:
                  # it = iter([1, 2, 3, 4, 5])
                  # # 循环:
                  while True:
                  try:
                  # 获得下一个值:
                  x = next(it)
                  print(x, type(x))
                  except StopIteration:
                  # 遇到StopIteration就退出循环
                  break

                   9、slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。

                    # class slice(stop)
                    # class slice(start, stop[, step])
                    # start -- 起始位置
                    # stop -- 结束位置
                    # step -- 间距
                    myslice = slice(5) # 设置截取5个元素的切片
                    myslice
                    arr = range(10)
                    print(arr)
                    print(arr[myslice])
                    # 截取 5 个元素

                    10、any() 函数用于判断给定的可迭代参数

                      # iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
                      # 元素除了是 0、空、FALSE 外都算 TRUE。
                      #
                      # 函数等价于
                      def any(iterable):
                      for element in iterable:
                      if element:
                      return True
                      return False
                      print( any(['a', 'b', '', 'd'])) # 列表list,存在一个为空的元素 True
                      print(any([0, '', False])) # 列表list,元素全为0,'',false

                       11、id() 函数返回对象的唯一标识符,标识符是一个整数。

                        # CPython 中 id()函数用于获取对象的内存地址。
                        # id([object]) object -- 对象。返回值是内存地址
                        a = yc1993xm1996
                        print(id(a)) # 2163314263536

                         12、eval() 函数用来执行一个字符串表达式,并返回表达式的值。

                          # eval(expression[, globals[, locals]])
                          # expression -- 表达式。
                          # globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
                          # locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
                          xm = 89
                          print(eval(9*xm)) # 801

                           13、pow() 方法返回 xy(x 的 y 次方) 的值。

                            # import math
                            #
                            math.pow( x, y )


                            print(pow(3, 2)) # 9

                            14、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

                              # enumerate(sequence, [start=0])
                                # sequence -- 一个序列、迭代器或其他支持迭代对象。
                                # start -- 下标起始位置。
                                xm = ['Spring', 'Summer', 'Fall', 'Winter']
                                print(list(enumerate(xm))) #[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]


                                15、zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存

                                  # 我们可以使用 list() 转换来输出列表。
                                  #
                                  # 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
                                  # zip([iterable, ...]) iterable 一个或多个迭代器
                                  yc = [1, 2, 4, 5]
                                  xm = [6, 7, 8, 9]
                                  print(list(zip(yc, xm))) # [(1, 6), (2, 7), (4, 8), (5, 9)]

                                   16、map() 函数会根据提供的函数对指定序列做映射。

                                    # 第一个参数 function以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
                                    # map(function, iterable, ...)
                                    # function -- 函数
                                    # iterable -- 一个或多个序列
                                    def squre(x):
                                    return x*2
                                    yc =[2, 4, 5, 6, 7]
                                    print(list(map(squre, yc))) # [4, 8, 10, 12, 14]

                                    17、Python open() 函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

                                      # 使用 open() 函数一定要保证关闭文件对象,即调用close() 函数。
                                      # 就是file()函数
                                      # open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
                                      # open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,closefd=True, opener=None)
                                      # file: 必需,文件路径(相对或者绝对路径)。
                                      # mode: 可选,文件打开模式
                                      # buffering: 设置缓冲
                                      # encoding: 一般使用utf8
                                      # errors: 报错级别
                                      # newline: 区分换行符
                                      # closefd: 传入的file参数类型
                                      # opener:
                                      # t :文本模式 (默认)。
                                      # x :写模式,新建一个文件,如果该文件已存在则会报错。
                                      # b :二进制模式。
                                      # + :打开一个文件进行更新(可读可写)。
                                      # U :通用换行模式(不推荐)。
                                      # r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
                                      # rb :以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
                                      # r+ :打开一个文件用于读写。文件指针将会放在文件的开头。
                                      # rb+ :以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
                                      # w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
                                      # wb :以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
                                      # w+ :打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
                                      # wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
                                      # a :打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
                                      # ab :以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
                                      # a+ :打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
                                      # ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
                                      f = open("new_test.txt");
                                      print(f.read());


                                      18、memoryview() 函数返回给定参数的内存查看对象(memory view)。

                                        # 所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。
                                        # memoryview(obj)
                                        v = memoryview(bytearray("abcefg", 'utf-8'))
                                        print(v[1]) # 98
                                        print(v[-1]) # 103
                                        print(v[1:4]) # <memory at 0x000001CCF9F7C7C8>
                                        print(v[1:4].tobytes()) # b'bce'

                                        19、dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),

                                          # 该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息
                                          # dir([object])
                                          # print(dir()) # 获得当前模块的属性列表
                                          # print(dir([])) # 查看列表的方法
                                          # ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__','__dir__', '__doc__', '__eq__', '__format__', '__ge__',
                                          # '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__','__imul__', '__init__', '__init_subclass__', '__iter__',
                                          # '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__','__reduce_ex__', '__repr__', '__reversed__',
                                          # '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__','__subclasshook__', 'append', 'clear', 'copy', 'count',
                                          # 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

                                          20、exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的Python 代码。

                                            # exec obj
                                            exec ("""for i in range(5):
                                            print(i)""") # 换行时候必须采用4格缩进
                                            # 0
                                            # 1
                                            # 2
                                            # 3
                                            # 4

                                            21 、format 格式化函数

                                              # Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
                                              # 基本语法是通过 {} 和 : 来代替以前的 % 。
                                              print("{}{}".format("hello", "world"))
                                              # 不设置指定位置,按默认顺序
                                              print( "{1} {0} {1}".format("hello", "world")) # 设置指定位置
                                              # 数字格式化
                                              # 下表展示了 str.format() 格式化数字的多种方法:
                                              # 3.1415926 {:.2f} 3.14 保留小数点后两位
                                              # 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
                                              # -1 {:+.2f} -1.00 带符号保留小数点后两位
                                              # 2.71828 {:.0f} 3 不带小数
                                              # 5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
                                              # 5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
                                              # 10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
                                              # 1000000 {:,} 1,000,000 以逗号分隔的数字格式
                                              # 0.25 {:.2%} 25.00% 百分比格式
                                              # 1000000000 {:.2e} 1.00e+09 指数记法
                                              # 13 {:>10d} 13 右对齐 (默认, 宽度为10)
                                              # 13 {:<10d} 13 左对齐 (宽度为10)
                                              # 13 {:^10d} 13 中间对齐 (宽度为10)
                                              # ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
                                              # + 表示在正数前显示 +,负数前显示 -;(空格)表示在正数前加空格
                                              # b、d、o、x 分别是二进制、十进制、八进制、十六进制。
                                              # 此外我们可以使用大括号{} 来转义大括号,如下实例:
                                              # 实例
                                              print("{} 对应的位置是{{1}}".format("runoob"))


                                              22、round() 方法返回浮点数x的四舍五入值。

                                                # round( x [, n] )
                                                # x -- 数值表达式。
                                                # n -- 数值表达式,表示从小数点位数
                                                print("round(80.23456, 2) :", round(80.23456, 2)) # 80.23
                                                print("round(100.000056,3) :" , round(100.000056, 3)) # 100.0

                                                23 、reverse() 函数用于反向列表中元素。

                                                  # list.reverse()
                                                  yc =["1232", "sdw", "sda", "sdv","sdg"]
                                                  print(yc.reverse())
                                                  print(yc)


                                                  24、Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型,所以打印的时候不会打印列表。

                                                    # range(stop)
                                                    # range(start, stop[, step])
                                                    for yc in range(2, 6, 2):
                                                        print(yc) # 2 
                                                        
                                                        

                                                        

                                                     

                                                    二、内置函数总结整理

                                                    1、数学运算类

                                                    abs(x)

                                                    求绝对值
                                                     1、参数可以是整型,也可以是复数
                                                     2、若参数是负数,则返回负数的模

                                                    complex([real[, imag]])

                                                    创建一个复数

                                                    divmod(a, b)

                                                    分别取商和余数
                                                     注意:整型、浮点型都可以

                                                    float([x])

                                                    将一个字符串或数转换为浮点数。如果无参数将返回0.0

                                                    int([x[, base]]) 

                                                    将一个字符转换为int类型,base表示进制

                                                    long([x[, base]]) 

                                                    将一个字符转换为long类型

                                                    pow(x, y[, z]) 

                                                    返回x的y次幂

                                                    range([start], stop[, step]) 

                                                    产生一个序列,默认从0开始

                                                    round(x[, n]) 

                                                    四舍五入

                                                    sum(iterable[, start]) 

                                                    对集合求和

                                                    oct(x)

                                                    将一个数字转化为8进制

                                                    hex(x)

                                                    将整数x转换为16进制字符串

                                                    chr(i)

                                                    返回整数i对应的ASCII字符

                                                    bin(x)

                                                    将整数x转换为二进制字符串

                                                    bool([x])

                                                    将x转换为Boolean类型

                                                     

                                                    2、集合类操作

                                                    basestring()

                                                    str和unicode的超类
                                                     不能直接调用,可以用作isinstance判断

                                                    format(value [, format_spec])

                                                    格式化输出字符串
                                                     格式化的参数顺序从0开始,如“I am {0},I  like {1}”

                                                    unichr(i)

                                                    返回给定int类型的unicode

                                                    enumerate(sequence [, start = 0])

                                                    返回一个可枚举的对象,该对象的next()方法将返回一个tuple

                                                    iter(o[, sentinel])

                                                    生成一个对象的迭代器,第二个参数表示分隔符

                                                    max(iterable[, args...][key]) 

                                                    返回集合中的最大值

                                                    min(iterable[, args...][key])

                                                    返回集合中的最小值

                                                    dict([arg])

                                                    创建数据字典

                                                    list([iterable]) 

                                                    将一个集合类转换为另外一个集合类

                                                    set()

                                                    set对象实例化

                                                    frozenset([iterable])

                                                    产生一个不可变的set

                                                    str([object]) 

                                                    转换为string类型

                                                    sorted(iterable[, cmp[, key[, reverse]]]) 

                                                    队集合排序

                                                    tuple([iterable]) 

                                                    生成一个tuple类型

                                                    xrange([start], stop[, step]) 

                                                    xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能为我们节省内存

                                                     

                                                    3、逻辑判断

                                                    all(iterable)

                                                    1、集合中的元素都为真的时候为真
                                                     2、特别的,若为空串返回为True

                                                    any(iterable)

                                                    1、集合中的元素有一个为真的时候为真
                                                     2、特别的,若为空串返回为False

                                                    cmp(x, y)

                                                    如果x < y ,返回负数;x == y, 返回0;x > y,返回正数

                                                     

                                                    4、反射

                                                    callable(object)

                                                    检查对象object是否可调用
                                                     1、类是可以被调用的
                                                     2、实例是不可以被调用的,除非类中声明了__call__方法

                                                    classmethod()

                                                    1、注解,用来说明这个方式是个类方法
                                                     2、类方法即可被类调用,也可以被实例调用
                                                     3、类方法类似于Java中的static方法
                                                     4、类方法中不需要有self参数

                                                    compile(source, filename, mode[, flags[,  dont_inherit]])

                                                    将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。
                                                     1、参数source:字符串或者AST(Abstract Syntax Trees)对象。
                                                     2、参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
                                                     3、参数model:指定编译代码的种类。可以指定为  ‘exec’,’eval’,’single’。
                                                     4、参数flag和dont_inherit:这两个参数暂不介绍

                                                    dir([object])

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

                                                    delattr(object, name)

                                                    删除object对象名为name的属性

                                                    eval(expression [, globals [, locals]])

                                                    计算表达式expression的值

                                                    execfile(filename [, globals [, locals]])

                                                    用法类似exec(),不同的是execfile的参数filename为文件名,而exec的参数为字符串。

                                                    filter(function, iterable)

                                                    构造一个序列,等价于[ item for item in iterable if  function(item)]
                                                     1、参数function:返回值为True或False的函数,可以为None
                                                     2、参数iterable:序列或可迭代对象

                                                    getattr(object, name [, defalut])

                                                    获取一个类的属性

                                                    globals()

                                                    返回一个描述当前全局符号表的字典

                                                    hasattr(object, name)

                                                    判断对象object是否包含名为name的特性

                                                    hash(object)

                                                    如果对象object为哈希表类型,返回对象object的哈希值

                                                    id(object)

                                                    返回对象的唯一标识

                                                    isinstance(object, classinfo)

                                                    判断object是否是class的实例

                                                    issubclass(class, classinfo)

                                                    判断是否是子类

                                                    len(s) 

                                                    返回集合长度

                                                    locals() 

                                                    返回当前的变量列表

                                                    map(function, iterable, ...) 

                                                    遍历每个元素,执行function操作

                                                    memoryview(obj) 

                                                    返回一个内存镜像类型的对象

                                                    next(iterator[, default]) 

                                                    类似于iterator.next()

                                                    object() 

                                                    基类

                                                    property([fget[, fset[, fdel[, doc]]]]) 

                                                    属性访问的包装类,设置后可以通过c.x=value等来访问setter和getter

                                                    reduce(function, iterable[, initializer]) 

                                                    合并操作,从第一个开始是前两个参数,然后是前两个的结果与第三个合并进行处理,以此类推

                                                    reload(module) 

                                                    重新加载模块

                                                    setattr(object, name, value)

                                                    设置属性值

                                                    repr(object) 

                                                    将一个对象变幻为可打印的格式

                                                    slice()


                                                    staticmethod

                                                    声明静态方法,是个注解

                                                    super(type[, object-or-type]) 

                                                    引用父类

                                                    type(object)

                                                    返回该object的类型

                                                    vars([object]) 

                                                    返回对象的变量,若无参数与dict()方法类似

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

                                                    返回一个byte数组
                                                     1、如果source为整数,则返回一个长度为source的初始化数组;
                                                     2、如果source为字符串,则按照指定的encoding将字符串转换为字节序列;
                                                     3、如果source为可迭代类型,则元素必须为[0  ,255]中的整数;
                                                     4、如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray.

                                                    zip([iterable, ...]) 

                                                    实在是没有看懂,只是看到了矩阵的变幻方面

                                                     

                                                    5、IO操作

                                                    file(filename [, mode [, bufsize]])

                                                    file类型的构造函数,作用为打开一个文件,如果文件不存在且mode为写或追加时,文件将被创建。添加‘b’到mode参数中,将对文件以二进制形式操作。添加‘+’到mode参数中,将允许对文件同时进行读写操作
                                                     1、参数filename:文件名称。
                                                     2、参数mode:'r'(读)、'w'(写)、'a'(追加)。
                                                     3、参数bufsize:如果为0表示不进行缓冲,如果为1表示进行行缓冲,如果是一个大于1的数表示缓冲区的大小 。

                                                    input([prompt]) 

                                                    获取用户输入
                                                     推荐使用raw_input,因为该函数将不会捕获用户的错误输入

                                                    open(name[, mode[, buffering]]) 

                                                    打开文件
                                                     与file有什么不同?推荐使用open

                                                    print()

                                                    打印函数

                                                    raw_input([prompt]) 

                                                    设置输入,输入都是作为字符串处理

                                                     

                                                    6、其他

                                                    help()--帮助信息

                                                      __import__()--没太看明白了,看到了那句“Direct useof __import__() is rare”之后就没心看下去了
                                                      apply()、buffer()、coerce()、intern()---这些是过期的内置函数,故不说明


                                                       

                                                      三、个人总结

                                                             我个人觉得内置函数,通常是使用频率比较频繁的操作,所以通过内置函数的形式提供出来,通过对python的内置函数分类分析可以看出来:基本的数据操作很多都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作,也是比较常用的,尤其需要注意的是反射操作。

                                                       

                                                       

                                                      文章转载自心在远方AND走在路上,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                      评论