zoukankan      html  css  js  c++  java
  • 内置函数

    一、常见内置函数

    https://docs.python.org/3/library/functions.html

    二、计算类

    1、abs(x)

    取绝对值

    >>> abs(-10)
    10
    

    2、all(iterable)  

    如果这个可迭代的元素都为真,则返回真(非0的就为真,负数也是为真)

    >>> all([2,3,1,0])
    False
    >>> all([2,3,1])
    True
    >>> all([2,3,-1])
    True
    

    3、any(iterable)

    可迭代的元素中,有一个为真,则返回真,空列表返回假。 

    >>> any([])
    False
    >>> any([0])
    False
    >>> any([2,4])
    True
    

    4、bool([x])

    功能:返回一个布尔值,空列表为假,不为空为真

    >>> bool([])
    False
    >>> bool([6,7])
    True
    

    5、divmod(a,b)

    功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。

    >>> divmod(4,3)
    (1, 1)
    >>> divmod(5,3)
    (1, 2)
    #1是商,2是余数
    

    6、map(functioniterable)

    功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。

    >>> b=map(lambda n:n*2,range(5))
    >>> b
    <map object at 0x1033c9a58>
    >>> for i in b:
    ...     print(i)
    ... 
    0
    2
    4
    6
    8
    

     7、reduce(function,iterable)

    功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。 

    >>> from functools import reduce
    >>> res=reduce(lambda x,y:x+y,range(10))
    >>> res
    45
    

    8、len(s)

    功能:计算序列或者字符串的长度

    >>> len('bianbain')
    8
    >>> len(list((1,2,3,5,3,)))
    5
    

    9、max(iterable*[, keydefault])

    功能:返回列表重点额最大值

    >>> max([1,2,4,54,23])
    54
    

    10、min(iterable*[, keydefault])

    功能:返回列表中的最小值

    >>> min([1,2,4,54,23])
    1
    

      

      

    三、数据类型转换类

    1、ascii(object)

    把内存对象变成一个可打印的字符串格式

    >>> ascii([1,2,34,4])
    '[1, 2, 34, 4]'
    

    2、bin(x)

    把一个整数转换成二进制

    >>> bin(80)
    '0b1010000'
    

    3、bytes([source[, encoding[, errors]]])

    把字符串转换成字节

    >>> a = bytes("mnop",encoding="utf-8")
    >>> a
    b'mnop'
    >>> a[0]
    109
    >>> a[0]=w
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'w' is not defined

     注:(1)可以访问到字符对应的ASCII值

             (2)bytes声明的字符串不可以修改里面的值

       4、bytearray[source[, encoding[, errors]]]

    功能:字节数组,并且可以修改二进制的字节

    >>> b = bytearray("abcd",encoding="utf-8")
    >>> b
    bytearray(b'abcd')
    >>> b[1]
    98
    >>> b[1]=100
    >>> b[1]
    100
    

     5、dict(**kwarg)、dict(mapping**kwarg)、dict(iterable**kwarg)

    功能:返回一个字典

    >>> dict()
    {}
    >>> dict(name='bianbian',age=18,love='pengpeng')
    {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
    >>> dict([('name','bianbian'),('age',18),('love','pengpeng')])
    {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
    >>> dict([['name','bianbian'],['age',18],['love','pengpeng']])
    {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
    

    6、exec(object[, globals[, locals]])

    功能:有语句的和复杂的语句的字符串转换成表达式???

     

    code = '''def timmer(func): #timmer(test) func=test
        def fex(*args,**kwargs):#传入非固定参数
            res=func(*args,**kwargs) #传入非固定参数
            return res
        return fex
    
    #不带参数
    @timmer
    def test1(): # 相当于test1 = timmer(test1)
        print("in the test1")
        return "from the test1"  # 执行函数test1有返回值
    res = test1()
    print(res)
    '''
    exec(code)
    
    #结果
    in the test1
    from the test1
    

    7、filter(functioniterable)

    功能:通过function过滤条件,去获取iterable中你想要的数据。

    >>> a = filter(lambda n:n>5,range(10))
    >>> a
    <filter object at 0x1033f4320>
    >>> for i in a:
    ...     print(i)
    ... 
    6
    7
    8
    9
    

     8、float([x])

    功能:把一个浮点类型的字符串转换为浮点类型的数据。

    >>> float('0.372')
    0.372
    >>> float('+0.372')
    0.372
    >>> float(' -319')
    -319.0
    >>> float('+1E6')
    1000000.0
    

     9、frozenset([iterable])

    功能:把集合变成一个不可变的集合

    >>> res=frozenset([1,2,3,4,5,1])
    >>> res
    frozenset({1, 2, 3, 4, 5}) #去重的,不可变的集合
    >>> dir(res) #没有可变的方法
    ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']

    10、hex(x)

    功能:把一个数字转成16进制

    >>> hex(2728)
    '0xaa8'
    

    11、int(x)

    功能:把其他数据类型强制转换成int类型

    >>> int(a)
    180
    >>> int(10.4)
    10
    

    12、iter(object[, sentinel])

    功能:把一个普通序列转成迭代器

    13、list([iterable])

    功能:把其他序列转换成一个列表

    >>> list((1,2,3,5,3,))
    [1, 2, 3, 5, 3]
    

    14、oct(x)

    功能:把一个数转成8进制

    >>> oct(10)
    '0o12'
    >>> oct(100)
    '0o144'

    15、round(number[, ndigits])

    功能:保留float数据类型位数

    >>> round(1.43499,3)
    1.435
    

    16、str(object)

    功能:把其他数据类型转换为字符串

    >>> str(1)
    '1'
    

    17、

    tuple([iterable])

    功能:把其他序列转换为一个元组

    >>> tuple([1,43,5,6])
    (1, 43, 5, 6)
    

      

      

      

     

      

    四、判断类

    1、callable(object)

    功能:判断一个对象是否可以被调用,只有在后面有括号的,表示可以调用,比如:函数,类。

    >>> callable([])
    False
    >>> def test():pass
    ... 
    >>> callable(test)
    True
    

    2、chr(i)

    功能:通过ascii的值,找到对应的字符

    >>> b = bytearray("abcd",encoding="utf-8")
    >>> b
    bytearray(b'abcd')
    >>> b[1]=100
    >>> b[1]
    100
    >>> chr(100)
    'd'
    

    3、ord(c)

    功能:根据字符,找到对应的ascii值

    >>> b = bytearray("abcd",encoding="utf-8")
    >>> b
    bytearray(b'abcd')
    >>> b[1]=100
    >>> ord('d')
    100
    

    4、dir([object])

    功能:看一个对象有哪些方法

    >>> name=[]
    >>> dir(name)
    ['__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']
    

    5、enumerate(iterable,start=0)

    功能:遍历一个可迭代对象,获取索引和对应的元素的值

    >>> a=['a','b','c','d']
    >>> list(enumerate(a))
    [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
    >>> list(enumerate(a,start=2))
    [(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd')]
    

    6、globals()

    功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value

    可以判断一个文件中的变量是否存在,而globals()只能打印全局变量 

    >>> print(globals())
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': <filter object at 0x1033f4320>, 'i': 8, 'b': <map object at 0x1033c9a58>, 'reduce': <built-in function reduce>, 'res': frozenset({1, 2, 3, 4, 5})}
    

     7、hash(object)

    功能:反射出一个对象的对应的hash值。

    >>> hash('bianbian')
    2624987259895593164
    >>> hash('18')
    -5605491781378490538
    >>> hash('a')
    7709350130933621133
    

     

    看上图,试想一张表中5百万个用户信息,只能用for循环去查找,那样的话,效率会很低。

    可以把每一个姓名对应的值,然后通过对应的key值去定位,key值是放在一个列表中,当我们去查找某个key值时,可以折半查找,这样大大减少了查找时间,提高效率,这种也叫二分法查找。

     五、其他

    1、help([object])

    功能:显示对象的帮助信息

    2、id(object)

    功能:返回对象的内存地址

    >>> a=180
    >>> id(a)
    4425784016
    

    3、input([prompt])

    功能:输入字符串

    4、isinstance(objectclassinfo)

    功能:这个在迭代器中使用

    5、locals()

    功能:打印局部变量

    def test():
        local_var=19302
        print(locals())
    test()
    print(globals().get("locals_var"))
    #结果 
    {'local_var': 19302}
    None

    6、next(iterator[, default])

    功能:返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常

    >>> a=iter([1,2])
    >>> next(a)
    1
    >>> next(a)
    2
    >>> next(a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    StopIteration
    

    7、object

    功能:python中一切皆对象,每一个对象都有它的属性和方法

     8、open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None)

    功能:文件操作

    9、print(*objectssep=' 'end=' 'file=sys.stdoutflush=False)

    功能:打印

    10、range(stop)、range(startstop[, step])

    功能:生成一个迭代器

    >>> range(5)
    range(0, 5)
    >>> range(1,5)
    range(1, 5)
    >>> range(1,5,3)
    range(1, 5, 3)
    

    10、reversed(seq)

    功能:反转一个序列,跟列表中的reversed方法是一样的

    >>> reversed([1,3,5,6])
    <list_reverseiterator object at 0x10807e3c8>
    >>> for i in reversed([1,3,5,6]):
    ...     print(i)
    ... 
    6
    5
    3
    1
    

    11、slice(stop),slice(startstop[, step])

    功能:序列的切片

    >>> a=[1,4,5,56,7,3]
    
    >>> a[slice(1,3)]
    [4, 5]
    >>> a[1:3]
    [4, 5] 

    12、sorted(iterable[, key][, reverse])

    功能:对一个序列进行排序

    >>> sorted([5,7,3,64,132,34,1])
    [1, 3, 5, 7, 34, 64, 132]
    >>> a={1:2,4:5,6:7}
    >>> sorted(a) #默认是按key排序
    [1, 4, 6]
    >>> b={'a':2,'b':5,'c':7} 
    >>> sorted(b) #按key排序
    ['a', 'b', 'c']
    >>> sorted(b.items())
    [('a', 2), ('b', 5), ('c', 7)]
    >>> sorted(b.items(),key = lambda x:x[1]) #按value排序
    [('a', 2), ('b', 5), ('c', 7)]
    

      

     

    13、type(object) 、type(namebasesdict)

    功能:查看一个对象的数据类型

    14、vars([object])

    功能:返回对象的所有属性

    15、zip(*iterables)

    功能:zip中文意思是拉链的意思,把两个序列一一对应起来

    如果a的元素比b的多,则按照元素最少的那个来

    >>> a=[1,3,4,5]
    >>> b=['a','b','c','d']
    >>> for i in zip(a,b):
    ...     print(i)
    ... 
    (1, 'a')
    (3, 'b')
    (4, 'c')
    (5, 'd')
    

     16、

    __import__(nameglobals=Nonelocals=Nonefromlist=()level=0)

    功能:当导入的模块是一个字符串时,用__import__()

    >>> import os
    >>> __import__('os') 
    <module 'os' from '/Users/bianbian/anaconda3/lib/python3.7/os.py'>
    

      

     
  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/bianfengjie/p/10846508.html
Copyright © 2011-2022 走看看