• 14 Python学习之常用内置函数


    查看所有内置函数:

    import builtins
    print(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', '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']
    

    常用内置函数

    bin

    bin的作用是将十进制转换成二进制

    例1:

    num = 154
    print(bin(num))
    

    运行结果:

    0b10011010

    oct

    oct的作用是将十进制转换成八进制

    例1:

    num = 154
    print(oct(num))
    

    运行结果:

    0o232

    hex

    hex的作用是将十进制转换成十六进制

    例1:

    num = 154
    print(hex(num))
    

    运行结果:

    0x9a

    round

    将数字以四舍五入的方式返回,如果不指定小数精度,默认是0返回的是整数部分;小数精度最后一位是0,不显示

    num = 10.2381028301
    print(round(num))
    print(round(num, 2))
    print(round(num, 5))
    

    运行结果:

    10 # 不指定精度,返回整数
    10.24 # 四舍五入
    10.2381 # 最后一位是0 ,不显示

    divmod

    divmode是以元组的形式返回除法的商合余数

    例1:

    print(divmod(200, 3))
    

    运行结果:

    (66, 2)

    pow

    pow函数

    如果参数是两个:是求x的y次方;

    如果参数是三个,是求x的y次方与z的取余

    例1:

    print(pow(2, 5))
    print(pow(2, 5, 3))
    

    运行结果:

    32

    2

    bytes

    bytes主要用于不同编码直接的转换,数据流,在网络传输过程中用的比较多

    例1:

    str1 = '中国'
    ret1 = str1.encode('utf-8')
    print(ret1)
    print(type(ret1))
    
    # 使用bytes
    ret2 = bytes(str1, encoding='utf-8')
    print(ret2)
    print(type(ret2))
    

    运行结果:

    b'xe4xb8xadxe5x9bxbd'
    <class 'bytes'>
    b'xe4xb8xadxe5x9bxbd'
    <class 'bytes'>

    ord

    ord是输入一个字符找该字符的对应在编码表中的位置,默认是Unicode查找

    例1:

    str1 = '中'
    ret = ord(str1)
    print(ret)
    

    运行结果:

    20013

    chr

    chr 是输入位置数字,找出其对应的字符,默认是Unicode查找,该函数跟ord正好相反

    例1:

    str1 = 20013
    ret = chr(str1)
    print(ret)
    

    运行结果:

    repr

    repr 是返回一个对象的string形式(原形毕露)占位符用%r表示

    例1:

    str1 = "20013"
    ret = repr(str1)
    print(ret)
    
    name = '张三'
    msg = '我叫 %r' % name
    print(msg)
    

    运行结果:

    '20013'

    我叫 '张三'

    all

    可迭代对象中全部是True结果才是True

    例1:

    li = [1, 2, '中', True, '']          # 列表中有空字符串,所以结果是False
    ret = all(li)
    print(ret)
    

    运行结果:

    False

    any

    可迭代对象中有一个是True结果就是True

    例1:

    li = ([0, '中', False, ''])         # 列表中有'中'是True
    ret = any(li)
    print(ret)
    

    运行结果:

    True

    sum

    求可迭代对象的和(元素必须是基本数字),可指定初值,默认是0(详见官方文档)

    例1:

    li = [1, 2, 3, 4]
    ret = sum(li)
    print(ret)
    
    ret2 = sum(li, 200)       # 指定初值
    print(ret2)
    

    运行结果:

    10

    210

    reversed

    返回一个翻转后的迭代器,注意与列表的函数reverse的区别,内置函数返回的是一个迭代器,列表函数返回的是一个列表

    例1:

    li = 'afasdf'
    ret = reversed(li)
    print(ret)
    print(li)
    

    运行结果:

    <reversed object at 0x7f838f58d400>
    afasdf

    例2:

    li = [1, 2, 3, 4]
    ret = reversed(li)
    print(ret)
    print(list(ret))
    print(li)
    

    运行结果:

    <list_reverseiterator object at 0x7fc9f23193c8>
    [4, 3, 2, 1]
    [1, 2, 3, 4]

    zip

    创建一个迭代器,从每个iterable聚合元素。返回的长度,取决于传入的参数中最少的值

    例1:

    li = [1, 2, 3, 4]
    tup = ('张三', '李四', '王五')
    s1 = 'abcd'
    ret = zip(li, tup, s1)
    print(ret)
    print(list(ret))		# 返回的结果长度是3,因为tup只有3
    print(li)
    print(tup)
    print(s1)
    

    运行结果:

    <zip object at 0x7f503b31cbc8>
    [(1, '张三', 'a'), (2, '李四', 'b'), (3, '王五', 'c')]
    [1, 2, 3, 4]
    ('张三', '李四', '王五')
    abcd

    filter

    filter类似于列表推导式的筛选模式,需要两个参数,第一个是函数,第二个是可迭代对象,返回结果是一个迭代器

    例1:

    li = [-1, 7, 3, 4, 5, 6, 2]
    print([i for i in li if i > 3])			# 列表推导式
    
    ret = filter(lambda i: i > 3, li)		# 返回的是一个迭代器
    print(list(ret))
    

    运行结果:

    [7, 4, 5, 6]
    [7, 4, 5, 6]

    map

    map类似于列表推导式的循环模式,需要两个参数,第一个是函数,第二个是可迭代对象,返回结果是一个迭代器

    print([i**2 for i in range(10)])
    
    ret = map(lambda arg: arg**2, range(10))
    print(ret)
    print(list(ret))
    

    运行结果:

    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    <map object at 0x7f21165dccf8>
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    callable

    callable判断一个对象是否可以被调用

    例1:

    num = 10
    def func():
        pass
    
    print(callable(func))
    print(callable(num))
    

    运行结果:

    True
    False

    min 和 max

    min是获取最小值,max是获取最大值,但是我们有时无法通过直接使用来获取想要的结果,因此需要用到函数的关键字参数key。凡是可以加key的函数:它会自动的将可迭代对象中的每个元素按照顺序传入key对应的函数中,按返回值比较大小

    例1:

    # 未使用key关键字参数的情况
    dt = {'a': 3, 'b': 5, 'c': 0, 'd': 1}
    print('未使用key的返回结果:', min(dt))          # 默认是按键的ASCII来进行比较
    
    def func(args):
        return dt[args]        # 因为是按返回的值进行比较,所以取字典的值
    
    print('使用了key的返回结果:', min(dt, key=func))	# 注意:这里只能是函数名,不能有调用
    print('使用了匿名函数和key的返回结果:', min(dt, key=lambda i: dt[i]))
    

    未使用key的返回结果: a
    使用了key的返回结果: c
    使用了匿名函数和key的返回结果: c

    例2:

    找出年龄最小的姓名

    li = [('张三', 18), ('alex', 35), ('李四', 16)]
    print(min(li))				# 默认是按照字典键的ASCII的值比较,不符合要求
    
    # 匿名函数是获取每一次传入的数字,然后进行比较,返回最下的
    print(min(li, key=lambda args: args[1]))		# 使用lambda函数求出值最小的键
    

    ('alex', 35)
    ('李四', 16)

    注意:凡是带关键字参数key的函数都可以这样使用

    sorted

    例1:

    按年龄从大到小排序

    li = [('张三', 18), ('alex', 35), ('big', 16)]
    print(sorted(li, key=lambda args: args[1], reverse=True))		# reverse指定倒叙
    

    [('alex', 35), ('张三', 18), ('big', 16)]

  • 相关阅读:
    java设计模式-适配器模式
    java设计模式-外观模式
    java设计模式-享元模式
    java设计模式-装饰模式
    java设计模式-组合模式
    java设计模式-桥接模式
    12月Java原生商城APP源码-完全开源
    uniapp插件市场-涂图视频编辑-美妆-剪辑-微整形原生sdk插件发布-优雅草科技
    12月最新仿知音漫画网站源码+手机端,小说漫画生成静态文件,超强负载量安全可靠
    如何把网易云音乐ncm格式转换成mp3格式---记一下
  • 原文地址:https://www.cnblogs.com/zcf-blog/p/13433085.html
Copyright © 2020-2023  润新知