python之内置函数

一、什么是内置函数

  • 解释器自带的的函数就是内置函数
  • 内置函数查看方法 print(dir(__builtins__))
print(len(dir(__builtins__)))  # 153个

二、常见内置函数

python之内置函数_Python教程

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

三、常用内置函数介绍

部分常用内置函数在这(详见第五小节匿名函数的应用):

点击进入,参见:max min sorted map reduce filter

1.abs():绝对值

print(abs(-6))

2.all():判断

  • 一个为假,就为假(0、空、None、False)
  • 所有元素的布尔值为真,最终结果才为真
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 = '你好taoxiaoxin'.encode('utf-8')
print(res)   # b'\xe4\xbd\xa0\xe5\xa5\xbdtaoxiaoxin'

res = bytes('你好taoxiaoxin',encoding='utf-8')
print(res)   # b'\xe4\xbd\xa0\xe5\xa5\xbdtaoxiaoxin'

7、callable( ) : 调用

  • 判断是否可以调用

    def func():
        pass
    print(callable(func))         # True
    print(callable('ss'.strip))   # True
    print(callable('dac'.split))  # False
    print(callable(123))          # False
    

8、ASCLL表转化

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

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

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

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":"淘小欣","age":10,"sex":"man"}\n')
        f.write('{"name":"派大星","age":18,"sex":"woman"}\n')
        f.write('{"name":"海绵宝宝","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': '淘小欣', 'age': 10, 'sex': 'man'}, {'name': '派大星', 'age': 18, 'sex': 'woman'}, {'name': '海绵宝宝', 'age': 14, 'sex': 'man'}]
    '''
    print(type(l))       # <class dict>
    print(l[0]["name"])  # 淘小欣
    

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('淘小欣')
print(next(res))  # 淘
print(next(res))  # 小
print(next(res))  # 欣

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