欢迎来访我的博客。

Python内置函数总结

Python 小张哥哥 433浏览 0评论

python内置了很多功能很方便的函数,供我们可以直接使用

我们可以通过在python命令行中输入dir(__builtins__查看所有的内置属性和内置函数

>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

忽略内置的属性,我们重点归纳总结一下各个函数的使用。

数学函数

  • abs()
    返回数字的绝对值
    语法:

    abs(x)

    示例:

        

  • >>> print("abs(-1)=%s" %abs(-1))
    abs(-1)=1
    >>> print("abs(11.2)=%s" %abs(11.2))
    abs(11.2)=11.2
    >>>


  • divmod()
    函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。在 python 3.x 版本该函数不支持复数。
    语法:

    divmod(a, b)
    a: 数字,非复数。
    b: 数字,非复数。

    示例:

    >>> divmod(7, 2)
    (3, 1)
    >>> divmod(8, 2)
    (4, 0)
    >>> divmod(8, -2)
    (-4, 0)  
    >>> divmod(3, 1.3)
    (2.0, 0.3999999999999999)
    1. 如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)。

    2. 如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b),q 通常是 math.floor(a / b),但也有可能是 1 ,比小,不过 q * b + a % b 的值会非常接近 a。

    3. 如果 a % b 的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)。

  • sum()
    对系列进行求和计算
    语法:

    sum(iterable[, start])
    iterable -- 可迭代对象,如:列表、元组、集合。
    start -- 指定相加的参数,如果没有设置这个值,默认为0。

    示例:

    >>> sum([1,2,3])
    6
    >>> sum([1,2,3],4)
    10
    >>> sum((1,2,3,4),5)
    15
  • round()
    返回浮点数x的四舍五入值。
    语法:

    round( x [, n]  )
    x -- 数字表达式。
    n -- 表示从小数点位数,其中 x 需要四舍五入,默认值为 0。

    示例:

    >>> round(1.234)
    1
    >>> round(1.234,1)
    1.2
    >>> round(1.234,3)1.234
  • pow()
    方法返回 xy(x的y次方) 的值。
    语法:

    pow(x, y[, z])
    函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
    x -- 数值表达式。
    y -- 数值表达式。
    z -- 数值表达式。

    示例:

    >>> pow(100,2)
    10000
    >>> pow(2,10)
    1024
    >>> pow(123,0)
    1
    >>> pow(2,-2)
    0.25
  • min()
    返回给定参数的最小值,参数可以为序列。
    语法:

    min( x, y, z, .... )
    x -- 数值表达式。
    y -- 数值表达式。
    z -- 数值表达式。

    示例:

    >>> min(1,2,3)
    1
    >>> min(-100, -10, -1)
    -100
  • max()
    返回给定参数的最大值,参数可以为序列。
    语法:

    min( x, y, z, .... )
    x -- 数值表达式。
    y -- 数值表达式。
    z -- 数值表达式。

    示例:

    >>> max(1,2,3)
    3
    >>> max(-100, -10, -1)
    -1


数据转换函数

  • hex()
    用于将一个指定数字转换为 16 进制数。
    语法:

    hex(x)
    x -- 一个整数

    示例:

    >>> hex(0)
    '0x0'
    >>> hex(15)
    '0xf'
    >>> hex(16)
    '0x10'
    >>> hex(255)
    '0xff'
    >>> hex(-255)
    '-0xff'
  • oct()
    将一个整数转换成8进制字符串。
    语法:

    oct(x)
    x -- 整数。

    示例:

    >>> oct(0)
    '0o0'
    >>> oct(7)
    '0o7'
    >>> oct(8)
    '0o10'
    >>> oct(10)
    '0o12'
    >>> oct(-10)
    '-0o12'
  • bin()
    返回一个整数 int 或者长整数 long int 的二进制表示。
    语法:

    bin(x)
    x -- int 或者 long int 数字

    示例:

    >>> bin(0)
    '0b0'
    >>> bin(2)
    '0b10'
    >>> bin(255)
    '0b11111111'
    >>> bin(-255)
    '-0b11111111'
  • int()

  • 用于将一个字符串或数字转换为整型。

  • 语法:

    class int(x, base=10)
    x -- 字符串或数字。
    base -- 进制数,默认十进制。

    示例:

    >>> int()
    0
    >>> int(5)
    5
    >>> int(12.3)
    12>>> int(-12.3)
    -12
    >>> int('12', 8)
    10
  • float()
    用于将整数和字符串转换成浮点数。
    语法:

    class float([x])
    x -- 整数或字符串

    示例:

    >>> float(0)
    0.0
    >>> float(1)
    1.0
    >>> float('12345')
    12345.0
  • str()
    将对象转化为适于人阅读的形式。
    语法:

    class str(object='')
    object -- 对象。

    示例:

    >>> s = 'this is a string'
    >>> str(s)
    'this is a string'
    >>> dict = {'name': 'Robort', 'age': 22, 'gender': 'male'}
    >>> str(dict)
    "{'name': 'Robort', 'age': 22, 'gender': 'male'}"
  • bool()
    用于将给定参数转换为布尔类型,如果没有参数,返回 False。
    语法:

    class bool([x])
    x -- 要进行转换的参数。

    示例:

    >>> bool()
    False
    >>> bool(0)
    False
    >>> bool(1)
    True
    >>> bool('a')
    True
  • ord()
    chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。

    >>>ord('a')
    97
    >>> ord('¥')
    65509
  • chr()
    用一个整数作参数,返回一个对应的字符。
    语法:

    chr( x)
    x -- int

    示例:

    >>>chr(0x30)
    '0'>>> chr(97) 
    'a'
    >>> chr(65509)
    '¥'
  • tuple()
    将列表转换为元组。
    语法:

    tuple( seq )
    seq -- 要转换为元组的序列。

    示例:

    >>> list1 = ['abc', 123, 'def']
    >>> print(tuple(list1))
    ('abc', 123, 'def')
  • list()
    用于将元组或字符串转换为列表。
    语法:

    list( seq )

    示例:

    >>> t1 = ('abc', 123, 'def')
    >>> print(list(t1))
    ['abc', 123, 'def']
    >>> s = 'Hello World!'
    >>> print(list(s))
    ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!']
  • repr()
    将一个对象转化为解释器阅读形式
    语法:

    repr(object)
    object -- 对象。

    示例:

    >>> s = 'Hello World!'
    >>> repr(s)
    "'Hello World!'"
    >>> dict1 = {'name': 'Robort', 'age': 22, 'gender': 'male'}
    >>> repr(dict1)
    "{'name': 'Robort', 'age': 22, 'gender': 'male'}"
  • ascii()
    函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。
    语法:

    ascii(object)
    object -- 对象。

    示例:

    >>> ascii('Hello World!')
    "'Hello World!'"
  • complex()
    用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。
    语法:

    class complex([real[, imag]])
    real -- int, long, float或字符串;
    imag -- int, long, float;

    示例:

    >>> c1 = 2+3j*3+4j
    >>> c2=complex(2,3)
    >>> c3=complex('3+4j')
    >>> print("complex(2,3)*complex('3+4j') = ", c2*c3)
    complex(2,3)*complex('3+4j') =  (-6+17j)
    >>> print("2+3j*3+4j = ", c1)
    2+3j*3+4j =  (2+13j)
    >>> print("(2+3j)*(3+4j) = ", (2+3j)*(3+4j))
    (2+3j)*(3+4j) =  (-6+17j)


对象创建函数

  • dict()
    用于创建一个字典。

    class dict(**kwarg)
    class dict(mapping, **kwarg)
    class dict(iterable, **kwarg)

    示例:

    >>>dict()  # 创建空字典{}
    >>> dict(a='a', b='b', t='t')     # 传入关键字
    {'a': 'a', 'b': 'b', 't': 't'}
    >>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
    {'three': 3, 'two': 2, 'one': 1} 
    >>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
    {'three': 3, 'two': 2, 'one': 1}
  • open()
    用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
    语法:

    open(file, mode='r')
    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:

    示例:

    >>>f = open('a.txt')
    >>>f.read()
  • bytearray()
    方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
    语法:

    class bytearray([source[, encoding[, errors]]])
    如果 source 为整数,则返回一个长度为 source 的初始化数组;
    如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
    如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
    如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
    如果没有输入任何参数,默认就是初始化数组为0个元素。

    示例:

    >>>bytearray()
    bytearray(b'')
    >>> bytearray([1,2,3])
    bytearray(b'\x01\x02\x03')
    >>> bytearray('test', 'utf-8')
    bytearray(b'test')
  • frozenset()
    返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
    语法:

    class frozenset([iterable])
    iterable -- 可迭代的对象,比如列表、字典、元组等等。

    示例:

    a = frozenset(range(10))     # 生成一个新的不可变集合
    >>> afrozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> b = frozenset('Hello World!')
    >>> bfrozenset({'o', 'H', 'e', ' ', 'r', 'd', 'W', 'l', '!'})   # 创建不可变集合
  • range()
    函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
    语法:

    range(stop)
    range(start, stop[, step])
    start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

    示例:

    >>> range(10)
    range(0, 10)
    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> [x for x in range(10)]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> [x for x in range(1,9)]
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> [x for x in range(1,10,2)]
    [1, 3, 5, 7, 9]
  • set()
    创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
    语法:

    class set([iterable])

    示例:

    >>> x = set("Hello")
    >>> y = set("World")
    >>> x
    {'o', 'l', 'H', 'e'}
    >>> y
    {'o', 'r', 'd', 'W', 'l'}
    >>> x & y{'o', 'l'}
    >>> x | y
    {'e', 'd', 'l', 'o', 'H', 'r', 'W'}
    >>> x - y
    {'H', 'e'}


迭代器操作函数

  • all()
    函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 True。
    语法:

    all(iterable)
    iterable -- 元组或列表。

    示例:

    >>> all([0,1,2,3,4])
    False
    >>> all([1,2,3,4,5])
    True
    >>> all(['a', 'b','c', 'd'])
    True
    >>> all(['a', 'b','c', 'd', ''])
    False
    >>> all(('a', 'b','c', 'd', ''))
    False
  • any()
    用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。
    语法:

    any(iterable)
    iterable -- 元组或列表。

    示例:

    >>> any([1,2,3,4,5])
    True
    >>> any([0,1,2,3,4])
    True
    >>> any(('a', 'b','c', 'd', ''))
    True
    >>> any((0, '', False))
    False
    >>> any([])
    False
  • iter()
    用来生成迭代器。
    语法:

    iter(object[, sentinel])
    object -- 支持迭代的集合对象。
    sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。

    示例:

    class add:
      def __init__(self, _start, _end):
          self.start = _start
          self.end = _end  
      def get_next(self):
          s = self.start      
          if(self.start < self.end):
              self.start += 1
          else:
              raise StopIteration      
          return s
    >>> a = add(1, 10)
    >>> it = iter(a.get_next, 5)
    >>> for i in it:
          print(i)
    1234
  • next()
    返回迭代器的下一个项目。
    语法:

    next(iterator[, default])
    iterator -- 可迭代对象
    default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。

    示例:

    >>> it =iter([1,2,3,4,5,6])
    >>> while True:
          y = next(it, 0)
          if y:
              print(y)
          else:
              break
    123456
    >>>
  • sorted()
    函数对所有可迭代的对象进行排序操作。

    sort 与 sorted 区别:
    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
    list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

    语法:

    sorted(iterable, key=None, reverse=False) 
    iterable -- 可迭代对象。
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

    示例:

    >>> sorted([6,3,8,4,1,7,4])
    [1, 3, 4, 4, 6, 7, 8]
    >>> sorted({3:'c', 6:'f', 1:'a', 4:'d', 2: 'b', 5:'e'})
    [1, 2, 3, 4, 5, 6]
    >>> sorted({3:'c', 6:'f', 1:'a', 4:'d', 2: 'b', 5:'e'}, reverse=True)
    [6, 5, 4, 3, 2, 1]
  • enumerate()
    用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
    语法:

    enumerate(sequence, [start=0])
    sequence -- 一个序列、迭代器或其他支持迭代对象。
    start -- 下标起始位置。

    示例:

    >>> num = ['python', 'java', '.net', 'c++', 'php']
    >>> enumerate(num)
    <enumerate object at 0x000001CFD1ECD558>
    >>> list(enumerate(num))
    [(0, 'python'), (1, 'java'), (2, '.net'), (3, 'c++'), (4, 'php')]
    >>> list(enumerate(num, 11))
    [(11, 'python'), (12, 'java'), (13, '.net'), (14, 'c++'), (15, 'php')]
  • filter()
    用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
    语法:

    filter(function, iterable)
    function -- 判断函数
    iterable -- 可迭代对象

    示例:

    >>> def is_male(item):
              gender = item[1]
              if gender == 'male':
                  return True
              return False
    >>> employees = [('张工','male'), ('王工','female'), ('李工','male'), ('郑工','female'),('夏工','male'),]
    >>> filter(is_male, employees)
    <filter object at 0x000001CFD1EC0BA8>
    >>> print(list(filter(is_male, employees)))
    [('张工', 'male'), ('李工', 'male'), ('夏工', 'male')]
    >>>
  • zip()
    函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。
    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
    语法:

    zip([iterable, ...])
    iterabl -- 一个或多个迭代器;

    示例:

    >>> a = [1,2,3,4]
    >>> b = ['a', 'b', 'c', 'd', 'e']
    >>> zip_ab = zip(a,b)
    >>> zip_ab
    <zip object at 0x0000028AC2E45388>
    >>> list(zip(a,b))
    [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
    >>> c, d = zip(*zip_ab)
    >>> c
    (1, 2, 3, 4)
    >>> d
    ('a', 'b', 'c', 'd')
  • map()
    会根据提供的函数对指定序列做映射。
    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
    语法:

    map(function, iterable, ...)
    function -- 函数
    iterable -- 一个或多个序列

    示例:

    >>> def func(x):
          return 2**x
    >>> list1 = [x for x in range(10)]
    >>> result = map(func, list1)
    >>> result
    <map object at 0x0000028AC2E40780>
    >>> list(result)
    [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
    >>> map(lambda x,y: x**y, [1,2,3,4,5,6],[1,2,3,4,5,6])
    <map object at 0x0000028AC2E406D8>
    >>> list(map(lambda x,y: x**y, [1,2,3,4,5,6],[1,2,3,4,5,6]))
    [1, 4, 27, 256, 3125, 46656]
  • reverse()
    返回一个反转的迭代器。
    语法:

    reversed(seq)
    seq -- 要转换的序列,可以是 tuple, string, list 或 range。

    示例:

    >>> a = 'Hello World!'
    >>> reversed(a)
    <reversed object at 0x0000028AC2E405F8>
    >>> list(reversed(a))
    ['!', 'd', 'l', 'r', 'o', 'W', ' ', 'o', 'l', 'l', 'e', 'H']['e', 'd', 'c', 'b', 'a']
    >>> l = ['a', 'b', 'c', 'd', 'e']
    >>> list(reversed(l))
    ['e', 'd', 'c', 'b', 'a']
    >>> t = (1,2,3,4,5)
    >>> list(reversed(t))
    [5, 4, 3, 2, 1]


对象属性操作函数

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

    setattr(object, name, value)
    object -- 对象。
    name -- 字符串,对象属性。
    value -- 属性值。

    示例:

    >>> class Student():
          def __init__(self, _name):
              self.name = _name          
    >>> a = Student('ZhangSan')
    >>> a
    <__main__.Student object at 0x0000028AC2E406D8>
    >>> a.age
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>AttributeError: 'Student' object has no attribute 'age'
    >>> setattr(a, 'age', 19)
    >>> a.age
    19
  • getattr()
    用于返回一个对象属性值。
    语法:

    getattr(object, name[, default])
    object -- 对象。
    name -- 字符串,对象属性。
    default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

    示例:

    >>> class Student():
          def __init__(self, _name):
              self.name = _name          
    >>> a = Student('ZhangSan')
    >>> a
    <__main__.Student object at 0x0000028AC2E406D8>
    >>> getattr(a, 'name')'
    ZhangSan'
    >>> getattr(a, 'age')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>AttributeError: 'Student' object has no attribute 'age'
  • hasattr()
    用于判断对象是否包含对应的属性。
    语法:

    hasattr(object, name)
    object -- 对象。
    name -- 字符串,属性名。

    示例:

    >>> class Student():
          def __init__(self, _name):
              self.name = _name          
    >>> a = Student('ZhangSan')
    >>> hasattr(a, 'name')
    True
    >>> hasattr(a, 'age')
    False
    >>> setattr(a, 'age', 16)
    >>> hasattr(a, 'age')
    True
  • delattr()
    用于删除属性。
    delattr(x, 'foobar') 相等于 del x.foobar。
    语法:

    delattr(object, name)
    object -- 对象。
    name -- 字符串,属性名。

    示例:

    >>> class Student():
          def __init__(self, _name, _age):
              self.name = _name
              self.age = _age          
    >>> a = Student('ZhangSan', 17)
    >>> hasattr(a, 'age')
    True
    >>> delattr(a, 'age')
    >>> hasattr(a, 'age')
    False
  • property()
    在新式类中返回属性值。
    语法:

    class property([fget[, fset[, fdel[, doc]]]])
    fget -- 获取属性值的函数
    fset -- 设置属性值的函数
    fdel -- 删除属性值函数
    doc -- 属性描述信息

    示例:

    >>> class Student(object):
          def __init__(self):
              self._x = None
          
          def getx(self):
              return self._x      
          def setx(self, value):
              self._x=value      
          def delx(self):
              del self._x
    
    >>> x = property(getx, setx, delx, '"X" Property')
    >>> a = Student()
    >>> a.name = "ZhangSan"
    >>> a
    <__main__.Student object at 0x0000013EE01F0588>
    >>> a.age = 19>>> a.gender = 'male'
    >>> a.gender
    'male'
    >>> del a.gender
    >>> a.gender
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>AttributeError: 'Student' object has no attribute 'gender'
  • vars()
    返回对象object的属性和属性值的字典对象。

    语法:

    vars([object])
    object -- 对象

    示例:

    >>> vars()
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>,'__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
    >>> class Student():
          def __init__(self, _name):
              self.name = _name
    >>> vars(Student)
    mappingproxy({'__module__': '__main__', '__init__': <function Student.__init__ at 0x00000171F1272EA0>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>, '__doc__': None})
    >>> a = Student()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>TypeError: __init__() missing 1 required positional argument: '_name'
      >>> a = Student("ZhangSan")
      >>> vars(a){'name': 'ZhangSan'}


对象操作函数

  • id()
    用于获取对象的内存地址。
    语法:

    id([object])
    object -- 对象。

    示例:

    >>> a = 'Hello World!'
    >>> id(a)
    1588888884144
    >>> b = 123
    >>> id(b)
    1559804144
  • eval()
    用来执行一个字符串表达式,并返回表达式的值。
    语法:

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

    示例:

    >>> x = 123
    >>> y = 456
    >>> a = "(x+111)*y"
    >>> eval(a)
    106704
  • exec()
    exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
    语法:

    exec(object[, globals[, locals]])
    object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法:错误)。如果object是一个code对象,那么它只是被简单的执行。
    globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
    locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。

    示例:

    >>> a = "print('Hello World!')"
    >>> exec(a)Hello World!
  • compile()
    将一个字符串编译为字节代码。
    语法:

    compile(source, filename, mode[, flags[, dont_inherit]])
    source -- 字符串或者AST(Abstract Syntax Trees)对象。。
    filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
    mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
    flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
    flags和dont_inherit是用来控制编译源码时的标志

    示例:

    >>> str = "3 * 4 + 5"
    >>> a = compile(str,'','eval')
    >>> eval(a)
    17
  • isinstance()
    判断一个对象是否是一个已知的类型,类似 type()。
    语法:

    isinstance(object, classinfo)
    object -- 实例对象。
    classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

    示例:

    >>> isinstance(1, int)
    True
    >>> isinstance('123', str)
    True
    >>> isinstance(123, str)
    False
    >>> isinstance(123, (str, list, int))
    True
  • staticmethod
    返回函数的静态方法。
    语法:

    staticmethod(function)

    示例:

    >>> class C(object):
          @staticmethod
          def f():
              print('runoob');
    >>> C.f();          # 静态方法无需实例化
    >>> cobj = C()
    >>> cobj.f()        # 也可以实例化后调用
  • issubclass()
    语法:

    staticmethod(function)

  • super()
    用于调用父类(超类)的一个方法。
    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
    MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
    语法:

    super(type[, object-or-type])
    type -- 类。
    object-or-type -- 类,一般是 self

    示例:

    >>> class A:     
            def add(self, x):
               y = x+1
               print(y)
       class B(A):
           def add(self, x):
             super().add(x)
    >>> b = B()
    >>> b.add(2)  # 3


  • callable()
    函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。对于函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True。
    语法:

    callable(object)
    object -- 对象

    示例:

    >>> callable(0)
    False
    >>> callable("runoob")
    False
    >>> def add(a, b):
    ...     return a + b
    ... 
    >>> callable(add)             # 函数返回 True
    True
    >>> class A:                  # 类...     
            def method(self):
            ...             
                return 0
            ... 
    >>> callable(A)               # 类返回 True
    True
    >>> a = A()
    >>> callable(a)               # 没有实现 __call__, 返回 False
    False
    >>> class B:
    ...     def __call__(self):
    ...             return 0
    ... 
    >>> callable(B)
    True
    >>> b = B()
    >>> callable(b)               # 实现 __call__, 返回 True
    True
  • type()
    type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
    语法:

    type(object)
    type(name, bases, dict)
    name -- 类的名称。
    bases -- 基类的元组。
    dict -- 字典,类内定义的命名空间变量。

    isinstance() 与 type() 区别:

    type() 不会认为子类是一种父类类型,不考虑继承关系。
    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance()。

    示例:

    >>> type(1)
    <class 'int'>
    >>> type([])
    <class 'list'>
    >>> type({})
    <class 'dict'>
    >>> class A(object):
    ...     a = 'a'
    ...
    >>> a = A()
    >>> type(a)
    <class '__main__.A'>
  • locals()
    locals() 函数会以字典类型返回当前位置的全部局部变量。
    对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。
    语法:

    locals()

    示例:

    >>> def add(a, b):
          res = a+b
            print(locals())
    >>>        
    >>> add(123, 456)
    {'res': 579, 'b': 456, 'a': 123}
  • globals()
    globals() 函数会以字典类型返回当前位置的全部全局变量。
    语法:

    globals()

    示例:

    >>> a = "Hello World!"
    >>> globals()
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 'Hello World!'}
    >>>
  • __import__()
    __import__() 函数用于动态加载类和函数。
    如果一个模块经常变化就可以使用 __import__() 来动态载入。
    语法:

    __import__(name[, globals[, locals[, fromlist[, level]]]])
    name -- 模块名

    示例:

    import os  
    print ('在 a.py 文件中 %s' % id(os))
    >>> import sys  
          __import__('a')        # 导入 a.py 模块
  • hash()
    hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
    语法:

    hash(object)
    object -- 对象;

    示例:

    >>> a = "Hello World"
    >>> hash(a)
    5016083600221294254
    >>> b = object()
    >>> hash(b)
    99303549471
  • memoryview()
    memoryview() 函数返回给定参数的内存查看对象(Momory view)。
    所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。
    语法:

    memoryview(obj)
    obj -- 对象

    示例:

    >>> v = memoryview('abcefg')
    >>> v[1]
    'b'
    >>> v[-1]
    'g'
    >>> v[1:4]
    <memory at 0x77ab28>
    >>> v[1:4].tobytes()
    'bce'
    >>> 
    >>> print(memoryview(bytearray("gbk", "utf-8", "gb2312"))) #获取bytearray数组的内存查看对象
    <memory at 0x00000171F1653AC8>


其它常用函数

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

    dir([object])

    示例:

    >>> dir()
    ['Student', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'list1', 'x', 'y']
    >>> a = 'Hello World!'
    >>> dir(a)
    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']>>> 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']
    >>>
  • format()
    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
    基本语法是通过 {} 和 : 来代替以前的 % 。
    format 函数可以接受不限个参数,位置可以不按顺序。
    语法:

    "...".format()

    示例:

    >>> '姓名:{};性别:{}'.format('ZhangSan', '男')
    '姓名:ZhangSan;性别:男'
    >>> '姓名:{name};性别:{gender}'.format(name='ZhangSan', gender='男')
    '姓名:ZhangSan;性别:男'
  • input()
    Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
    语法:

    input([prompt])
    prompt: 提示信息

    示例:

    >>> a = input("input:")
    input:123                  # 输入整数
    >>> type(a)
    <class 'str'>
  • slice()
    slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
    语法:

    class slice(stop)
    class slice(start, stop[, step])
    start -- 起始位置
    stop -- 结束位置
    step -- 间距

    示例:

    >>> myslice = slice(5)    # 设置截取5个元素的切片
    >>> myslice
    slice(None, 5, None)
    >>> arr = range(10)
    >>> arr
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> arr[myslice]         # 截取 5 个元素[0, 1, 2, 3, 4]>>>
  • len()
    方法返回对象(字符、列表、元组等)长度或项目个数。
    语法:

    len(s)
    s -- 对象。

    示例:

    >>> a = 'Hello World'
    >>> len(a)11
    >>> list1 = [x for x in range(10)]
    >>> len(list1)
    10
  • help()
    查看函数或模块用途的详细说明。
    语法:

    help([object])
    object -- 对象;

    示例:

    >>>help('sys')             # 查看 sys 模块的帮助……显示帮助信息……
    >>>help('str')             # 查看 str 数据类型的帮助显示帮助信息……
    >>>a = [1,2,3]
    >>>help(a)                 # 查看列表 list 帮助信息……显示帮助信息……
    >>>help(a.append)          # 显示list的append方法的帮助……显示帮助信息……


转载请注明:禅思 » Python内置函数总结?

喜欢 (3) or 分享 (0)

我的个人微信公众号,欢迎关注

扫码或搜索:Python后端开发Django

Python后端开发Django

微信公众号 扫一扫关注

结交朋友、一起学习,一起进步。

科波之主

QQ号 386046154 立即加入

添加微信,进行技术交流

专注技术交流, 一同成长进步

我的微信号

如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(0)个小伙伴在吐槽