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

    详细文档地址:猛击这里

    内置函数详解

    1. abs(x)

    返回数字的绝对值。x -- 数值表达式,可以是整数,浮点数,复数

    >>> print(abs(-1))
    1
    >>> print(abs(100.10))
    100.1
    

     2. all(Iterable)

    用于判断给定的可迭代参数Iterable中的所有元素是否不为0,‘’,或者iterable为空,如果是返回True, 否则返回False.

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

    >>> all(["a","b","c"])
    True
    >>> all(["a","b","c",""])
    False
    >>> all(["a","b","c","0"])
    True
    >>> all([0,1,2,3])
    False
    >>> all([])
    True
    >>> all(())
    True
    

    3. any(iterable)

    用于判断给定的可迭代参数iterable是否全部为空对象,如果都为空,0,false, 则返回False, 如果不为空,0,false,则返回True.

    >>> any(["a","b"])
    True
    >>> any(["a","b",""])
    True
    >>> any([0,"",False])
    False
    >>> any([])
    False
    >>> any(())
    False
    

     4. ascii(object)

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

    >>> ascii(['1'])
    "['1']"
    >>> ascii('obj')
    "'obj'"
    

     5. bin(x)

    把一个整数转换成二进制

    >>> bin(10)
    '0b1010'
    >>> bin(1)
    '0b1'
    >>> bin(100)
    '0b1100100'
    

     6. bool()

    用于将给定的参数转换为布尔型,如果没有参数,返回False

    >>> bool()
    False
    >>> bool(0)
    False
    >>> bool(1)
    True
    

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

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

    >>> b = bytearray("abcd",encoding="utf-8")  #声明一个字节数组
    >>> b
    bytearray(b'abcd') 
    >>> b[0]   #打印第一个元素的ascii值,也就是‘a’对应的ascii值
    97
    >>> b[0] = 100  #修改时,只能赋值对应字符的ascii值
    >>> b
    bytearray(b'dbcd')  #发现字节数组值被修改
    

    8. bytes([source[, encoding[, errors]]])

    把字符串转换成字节

    >>> b = bytes("abcd",encoding="utf-8")
    >>> b
    b'abcd'
    

    9. callable(object)

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

    >>> callable([])  #列表后不加括号
    False
    >>> def sayhi():pass  #定义一个函数
    ...
    >>> callable(sayhi)  #函数调用,后面需要加括号
    True
    

     10. chr(i)

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

    >>> chr(97)
    'a'
    >>> chr(91)
    '['
    

     11. ord(c)

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

    >>> ord("a")
    97
    >>> ord("[")
    91
    

     12. classmethod(function)

    类方法,这个后续谈到类的时候再说。

    13. compile(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-1)

    用于把代码编译的一个过程,这个基本用不到

    >>> code = """1+3/2*6"""
    >>> py_object = compile(code,'','eval')
    >>> eval(py_object)
    10.0
    

     14. complex([real[, imag]])

    返回一个复数,我们几乎用不到

    >>> complex("1+2j")
    (1+2j)
    

     15. delattr(object, name)

    类使用的,先不care

    16. dict(**kwarg)、dict(mapping**kwarg)、dict(iterable**kwarg)

    返回一个字典

    >>> dict()
    {}
    >>> dict(name="alex",age=18)
    {'name': 'alex', 'age': 18}
    >>> dict([["name","alex"],["age",18]])
    {'name': 'alex', 'age': 18}
    >>> dict([("name","alex"),("age",18)])
    {'name': 'alex', 'age': 18}
    

     17. dir([object])

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

    >>> dir()
    ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'b', 'code', 'py_object', 'sayhi']
    >>> 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']
    

     18. divmod(a,b)

    divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)

    >>> divmod(7,2)
    (3, 1)
    >>> divmod(8,2)
    (4, 0)
    

     19. enumerate(iterable,start=0)

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

    >>> L = ['a','b','c']
    >>> enumerate(L)
    <enumerate object at 0x056C5670>
    >>> list(enumerate(L))
    [(0, 'a'), (1, 'b'), (2, 'c')]
    

     20. eval(expressionglobals=Nonelocals=None)

    把字典类型的字符串变成字典,把一个整数类型的字符变成int类型,或者加减乘除这种简单转换成表达式。

    >>> eval("1")
    1
    >>> eval("1+3/2*6")
    10.0
    

     21. exec(object[, globals[, locals]])

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

    >>> code = """
    ... def test():
    ...     print("in the test")
    ... res = test()
    ... print(res)
    ... """
    >>> exec(code)
    in the test
    None
    

     22. filter(function,iterable)

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

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

     23. map(function,iterable)

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

    >>> res = map(lambda n:n+1,range(5))
    >>> res
    <map object at 0x056E4770>
    >>> for i in res:
    ...     print(i)
    ...
    1
    2
    3
    4
    5
    

     24. reduce(function,iterable)

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

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

    25. float()

    用于将整数和字符串转换成浮点数。

    >>> float(1)
    1.0
    >>> float(112)
    112.0
    >>> float(-112.6)
    -112.6
    >>> float("123")
    123.0
    

    26. format(value[,format_spec])

    格式化字符串,详细使用点击这里

    27. frozenset([iterable])

    返回一个冻结的集合,冻结后集合不能再添加或删除任何元素

    >>>a = frozenset(range(10))     # 生成一个新的不可变集合
    >>> a
    frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> b = frozenset('runoob') 
    >>> b
    frozenset(['b', 'r', 'u', 'o', 'n'])   # 创建不可变集合
    >>>
    

     28. getattr(object, name[,default])

    用于返回一个对象属性值。后续类的时候详细说明。

    29. globals()

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

    >>> globals()
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'b': frozenset({'u', 'n', 'o', 'r', 'b'}), 'sayhi': <function sayhi at 0x056C2738>, 'code': '
    def test():
        print("in the test")
    res = test()
    print(res)
    ', 'py_object': <code object <module> at 0x056E72E0, file "", line 1>, 'L': ['a', 'b', 'c'], 'test': <function test at 0x056C26F0>, 'res': 362880, 'i': 5, 'reduce': <built-in function reduce>, 'a': frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})}
    

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

     30. hash(object)

    反射出一个对象的对应的hash值

    >>> hash("alex")
    -1269379972
    >>> hash(192)
    192
    >>> hash("a")
    369426383
    

    31. hex(x)

    把一个数字转成16进制

    >>> hex(255)
    '0xff'
    >>> hex(11)
    '0xb'
    

     32. id(object)

    返回对象的内存地址

    >>> a = ["a","b","c"]
    >>> id(a)
    14577456
    

    33. int(x)

    其他数据类型强制转换成int类型

    >>> int("10")
    10
    

     34. issubclass(class, classinfo)

    用于判断参数 class 是否是类型参数 classinfo 的子类

    class A:
        pass
    class B(A):
        pass
        
    print(issubclass(B,A))    # 返回 True
    

     35. iter(object[, sentinel])

    用来生成迭代器。

    >>>lst = [1, 2, 3]
    >>> for i in iter(lst):
    ...     print(i)
    ... 
    1
    2
    3
    

     36. locals()

    locals() 函数会以字典类型返回当前位置的全部局部变量

    >>>def runoob(arg):    # 两个局部变量:arg、z
    ...     z = 1
    ...     print (locals())
    ... 
    >>> runoob(4)
    {'z': 1, 'arg': 4}      # 返回一个名字/值对的字典
    >>>
    

     37. max(iterable*[, keydefault])

    返回给定参数的最大值,参数可以为序列。

    >>> max([1,2,3])
    3
    

     38. next(iterator[, default])

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

    # 首先获得Iterator对象:
    it = iter([1, 2, 3, 4, 5])
    # 循环:
    while True:
        try:
            # 获得下一个值:
            x = next(it)
            print(x)
        except StopIteration:
            # 遇到StopIteration就退出循环
            break
    

     39. object

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

    40. range(stop)、range(startstop[, step])

    生成一个迭代器

    >>> range(5)
    range(0, 5)
    >>> range(10)
    range(0, 10)
    

     41. repr()

    repr() 函数将对象转化为供解释器读取的形式。

    >>>s = 'RUNOOB'
    >>> repr(s)
    "'RUNOOB'"
    >>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
    >>> repr(dict)
    "{'google': 'google.com', 'runoob': 'runoob.com'}"
    

     42. reversed(seq)

    reversed 函数返回一个反转的迭代器。

    • seq -- 要转换的序列,可以是 tuple, string, list 或 range。
    # 字符串
    seqString = 'Runoob'
    print(list(reversed(seqString)))
     
    # 元组
    seqTuple = ('R', 'u', 'n', 'o', 'o', 'b')
    print(list(reversed(seqTuple)))
     
    # range
    seqRange = range(5, 9)
    print(list(reversed(seqRange)))
     
    # 列表
    seqList = [1, 2, 4, 3, 5]
    print(list(reversed(seqList)))
    

     43. round(number[, ndigits])

    保留float数据类型位数

    >>> round(1.223254,2)
    1.22
    

     44. slice(stop),slice(startstop[, step])

    序列的切片

    >>> a = [1,2,3,4,5,6]
    >>> a[slice(1,3)]
    [2, 3]
    >>> a[1:3]
    [2, 3]
    

     45. sorted(iterable[, key][, reverse])

    sorted() 函数对所有可迭代的对象进行排序操作

    sort 与 sorted 区别:

    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

    list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

    参考这里

    46. sum()

    对系列进行求和计算

    >>>sum([0,1,2])  
    3  
    >>> sum((2, 3, 4), 1)        # 元组计算总和后再加 1
    10
    >>> sum([0,1,2,3,4], 2)      # 列表计算总和后再加 2
    12
    

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

    这个是类的继承,后续会讲

    48. vars([object])

    返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()

    >>>print(vars())
    {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
    >>> class Runoob:
    ...     a = 1
    ... 
    >>> print(vars(Runoob))
    {'a': 1, '__module__': '__main__', '__doc__': None}
    >>> runoob = Runoob()
    >>> print(vars(runoob))
    {}
    

    49. zip()

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

    >>>a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [4,5,6,7,8]
    >>> zipped = zip(a,b)     # 打包为元组的列表
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(a,c)              # 元素个数与最短的列表一致
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(*zipped)          # 与 zip 相反,可理解为解压,返回二维矩阵式
    [(1, 2, 3), (4, 5, 6)]
    

    50. __import__(name[, globals[, locals[, fromlist[, level]]]])

    用于动态加载类和函数。如果一个模块经常变化就可以使用 __import__() 来动态载入

    a.py 文件代码:

    import os  
     
    print ('在 a.py 文件中 %s' % id(os))
    

    test.py文件代码:

    import sys  
    __import__('a')        # 导入 a.py 模块
    

    执行 test.py 文件,输出结果为:

    在 a.py 文件中 4394716136
    
  • 相关阅读:
    python 约束与异常处理
    ActiveMQ
    SpringMVC项目,启动项目怎么总是报找不到log4j.properties文件
    java 字符串处理
    java面向对象学习笔记
    JSONArray遍历
    get/post方式调用http接口
    IO流认识
    Apache Mina 入门实例
    “wsimport -keep ”生成客户端报错“Use of SOAP Encoding is not supported.”
  • 原文地址:https://www.cnblogs.com/Easonlou/p/8351301.html
Copyright © 2011-2022 走看看