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

    一.什么是内置函数

    • 解释器自带的函数就是内置函数

    • 内置函数查看方法 print(dir(__builtins__))

    print(len(dir(__builtins__)))  # 153个
    

    二.常见内置函数

    img

    ps : 工厂函数 : int float str list tuple dict set bool bytes

    三.常用内置函数介绍

    部分常用内置函数在这: max min sorted map reduce filter

    1、abs( ) : 绝对值

    print(abs(-5))  # 变成正数
    

    2、all( ) : 判断

    • 一个为假,就为假 (0、空、None、Flase)
    • 所有元素的布尔值为真,最终结果才为真
    print(all([1,'a',0]))  # False
    print(all([1,2,[]]))   # False
    
    • 传给 all 的可迭代对象如果为空,最终结果为真
    print(all(''))   # True
    print(all([]))   # True
    

    3、any( ) : 判断

    • 但凡有一个为真,就为真
    print(any([0,'',None,1]))  # True
    
    • 传给 any 的可迭代对象如果为空,最终结果为假
    print(any([]))    # False
    print(any(''))    # False
    

    4、进制转换

    print(bin(11))     # 10--->2
    print(oct(11))     # 10--->8
    print(hex(11))     # 10--->16
    

    5、bool( ) : 布尔值

    print(bool(0))     #0, None,空的布尔值为假
    

    6、.encode( ) : 转类型

    • 编码, 转成 "bytes" 类型
    res = '你好songhaiixng'.encode('utf-8')
    print(res)   # b'\xe4\xbd\xa0\xe5\xa5\xbdsonghaiixng'
    
    res = bytes('你好songhaixing',encoding='utf-8')
    print(res)   # b'\xe4\xbd\xa0\xe5\xa5\xbdsonghaixing'
    

    7、callable( ) : 调用

    • 判断是否可以调用
    def func():
        pass
    print(callable(func))         # True
    print(callable('ss'.strip))   # True
    print(callable('dac'.split))  # False
    print(callable(123))          # False
    

    8、ASCII表转化

    print(chr(90))   #按照表十进制转化成字符
    print(ord('x'))  #按照表十进制转化成数字
    

    9、dir( ) : 查看调用对象

    • 查看某个对象可以调用的方式
    print(dir('song'))  # [打印出一堆的调用方法]
    

    10、divmod( ) : 除 余

    print(divmod(10,3))  #(3,1)--->10除于3余1
    print(divmod(10,2))  #(5,0)--->10除于2余0
    

    11、eval( ) : 字符串内表达式运算

    • 将字符串里面的表达式拿出来运算一下, 并拿到运算的结果
    数学表达式
    res = eval('2**3')
    print(res)          # 8
    
    列表
    res = eval('[1,2,3,4.5,5]')
    print(res)          # [1, 2, 3, 4.5, 5]
    print(res[2])       # 3
    
    字典
    res = eval("{'name':'shawn','age':18,'sex':'man'}")
    print(res)          # {'name': 'shawn', 'age': 18, 'sex': 'man'}
    print(res["name"])  # shawn
    
    • 文件存取示例 (文件拿出来是字符串, 使用 eval() 将其转成字典)
    with open(r"aaa.txt","at",encoding="utf-8")as f:
        f.write('{"name":"shawn","age":10,"sex":"man"}\n')
        f.write('{"name":"song","age":18,"sex":"woman"}\n')
        f.write('{"name":"xing","age":14,"sex":"man"}\n')
    
    l = []
    with open(r"aaa.txt","rt",encoding="utf-8")as f:
        for i in f:
            line = i.strip('\n')
            res = eval(line)
            l.append(res)
    
    print(l)
    '''
    [{'name': 'shawn', 'age': 10, 'sex': 'man'},\
      {'name': 'song', 'age': 18, 'sex': 'woman'},\
       {'name': 'xing', 'age': 14, 'sex': 'man'}]
    '''
    print(type(l))       # <class dict>
    print(l[0]["name"])  # shawn
    

    12、frozenset( ) : 不可变集合, 冻结集合

    • 制作不可变的集合
    fset = frozenset({1,2,3})
    print(fset)        # frozenset({1, 2, 3})
    print(type(fset))  # <class 'frozenset'>
    

    13、globals( ) : 全局作用域中的绑定关系

    • 查看全局作用域中名字与值得绑定关系
    • locals( ) : 局部 (当前位置的)
    当都处于全局名称空间调用查看时,查看的效果是一样的
    x = 111111
    print(globals()) # [一堆绑定关系]
    print(locals())  # [一堆绑定关系]
    
    当在函数内部使用 "locals()" 查看时, 得到的就是函数内部名称空间的绑定关系
    def aa():
        x = 111
        y = 222
        print(locals())
    
    aa()  #{'x': 111, 'y': 222}
    

    14、help( ) : 显示帮助信息

    def func():
        """
        帮助信息
        :return:
        """
        pass
    print(help(func)) # [显示里面的帮助文档]
    print(help(max))
    

    15、len( ) : 长度

    • 自定调用 "__len__" 功能
    print(len({'x':1,'y':2}))     # 2
    print({'x':1,'y':2}.__len__)  # 2
    

    16、iter( ) : 迭代器

    • 自定调用 "__iter__" 功能
    res = iter('song')
    print(next(res))  # s
    print(next(res))  # o
    print(next(res))  # n
    .......
    

    17、pow( ) : 平方取余

    print(pow(10, 2))     # 100   10**2------>100
    print(pow(2,3,3))     # 2     2**3 % 3--->余 2
    print(pow(10, 2, 3))  # 1     10**2 % 3-->余 1
    

    18、slice( ) : 切片

    • 创建一个切片模板(对象),以后可以直接拿过来用
    创建切片对象
    res = slice(1, 5, 2)  
    
    直接使用创建好的来切
    l = [1, 2, 3, 4, 5, 6, 7, 8]
    print(l[res])     #[2, 4]
    
    t = (5, 14, 7, 8, 9, 5, 4, 2)
    print(t[res])     #(14, 8)
    

    19、sum( ) : 求和

    print(sum([1,2,3,4,5]))    # 15
    

    20、zip( ) : (拉链函数) 左右对应

    left = 'hello'
    right = (1,2,3,)    
    
    res = zip(left,right)
    print(res)        # <zip object at 0x0000016FC23A0748>
    print(type(res))  # <class 'zip'>
    print(list(res))  # [('h', 1), ('e', 2), ('l', 3)]
    

    21、__import__ : 转模块

    • 一般用于从文件中读取字符串, 将其转换成模块的形式
    • 拿到的返回值可以进行模块的操作
    with open('m',mode='rt',encoding='utf-8') as f:
        module=f.read()          # 这里拿到的是字符串
        time=__import__(module)  # __import__("time") 以字符串形式导入模块
        time.sleep(3)
        print(time.time())
    

    22、reversed( ) : 倒序

    • 将一个有序对象倒过来排序 (单纯的倒过来)
    res = reversed((2,3,65,765,23,20))
    res2 = reversed([4,6,2,7,9,0,3,1])
    print(tuple(res))  # (20, 23, 765, 65, 3, 2)
    print(list(res2))  # [1, 3, 0, 9, 7, 2, 6, 4]
    

    23、hash( ) : 哈希值

    • 返回传入对象的 hash
    • 传入的是可 hash 类型, 也就是不可变类型
    print(hash(1231))           # 1231
    print(hash("派大星"))        # 4444534694763505378
    print(hash((1,2,3,4,"a")))  # 4233406373922709203
    print(hash(2.5))            # 1152921504606846978
    
    print(hash(['海绵宝宝',12]))  # 报错 : TypeError
    

    24、bytes( ) :编码格式

    • 将一个字符串转成你想要的编码格式的字节
    print(bytes('派大星',encoding="utf-8"))
    # b'\xe6\xb4\xbe\xe5\xa4\xa7\xe6\x98\x9f'
    
    print(bytes("派大星",encoding="gbk"))
    # b'\xc5\xc9\xb4\xf3\xd0\xc7'
    

    25、bin( ) : 十进制转二进制

    • 将一个整数转换成一个二进制字符串, 结果以 "0b" 为前缀
    print(bin(123))  # 0b1111011
    print(bin(333))  # 0b101001101
    print(bin(000))  # 0b0
    

    26、oct( ) : 十进制转八进制

    • 将一个整数转换成八进制的字符串, 结果以 "0o" 为前缀
    print(oct(123))  # 0o173
    print(oct(444))  # 0o674
    print(oct(000))  # 0o0
    

    27、hex( ) : 十进制十六进制

    • 将一个整数转换成一个小写的十六进制字符串, 结果以 "0x" 为前缀
    print(hex(123123))  # 0x1e0f3
    print(hex(999999))  # 0xf423f
    print(hex(000000))  # 0x0
    

    28、chr( ) : 转ASCII表字符

    • 返回整数在ASCII表中所对应的字符, 取值范围[0~255]之间的整数
    • 65~90 : A~Z
    • 97~122 : a~z
    print(chr(99))  # c
    print(chr(94))  # ^
    print(chr(120)) # x
    print(chr(76))  # L
    

    29、ord( ) : ascii表字符转整数

    • 将一个ascii表中的字符转换成整数
    print(ord('%'))  # 37
    print(ord('z'))  # 122
    print(ord('A'))  # 65
    print(ord('='))  # 61
    
  • 相关阅读:
    同事跳槽京东后,分享给我一份JAVA核心开发手册(架构筑基+开源框架+分布式架构+微服务架构+性能调优)
    只有2年经验的Java程序员,面试25K的阿里巴巴后端岗,已拿offer
    985硕士粉秋招拿下快手44万offer,面试资料学习经验分享
    年薪50万的程序员到底有多累、多辛苦?句句扎心。
    蚂蚁金服首发887页Java面试宝典!还原真实面试情景+面试题
    P8首谈做Java,在一线大厂做到金字塔顶端的人平时都如何学习?
    poj 2153 Rank List(查找,Map)
    算法导论 6-2 d叉堆
    算法导论 6.5.9 堆实现K路归并问题
    poj 2051 Argus(优先队列)
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14105477.html
Copyright © 2011-2022 走看看