常用内置函数+可迭代对象,迭代对象

常用内置函数+可迭代对象,迭代对象

重要内置函数

zip()  # 拉链,可有多个参数,需要是可迭代对象,会把可迭代对象,按对应关系,依次组成元组,没有对应关系的则直接抛弃
l1 = [1,2,3,'a']
l2 = ['a',1,2]
res = zip(l1,l2)  
'''
[(1,'a'),(2,1)(3,2)]
'''

filter  # 过滤 第一个参数为过滤函数,需要返回布尔值
l1 = [1,2,3,'a']
res = filter(lambda x:x.isdecimal(),l1)
'''
[1,2,3]
'''
sorted  # 排序默认升序
l1 = [2,1,5,4]
res = sorted(l1)  # 需要用变量接收排过序的列表
'''
[1,2,4,5]
'''

常见内置函数

1.abs()  #绝对值
num1 = -1
num2 = 10
res1 = abs(num1)  # 1
res2 = abs(num2)  # 10

2.all()  # 所有数据值对用的布尔值为True结果才为True,否则为False
num1 = 0
num2 = 'a'
num3 = [1]
res = all([num1,num2,num3])  # False
num1 = 1
num2 = 'asd'
num3 = [1,2]
res = all([num1,num2,num3])  # Trues

3.any()  所有数据值对应的布尔类型有一个为True 则为 True 否则 为False
num1 = 0
num2 = 'a'
num3 = [1]
res = all([num1,num2,num3])  # False
num1 = 1
num2 = ''
num3 = []
res = all([num1,num2,num3])  # True

4.bin()二进制 oct()八进制 hex()十六进制 int()十进制
5.bytes()  转换成bytes类型

6.callbale()  # 判断名字是否可以加括号调用 可以为True 不可 为False

7.chr()数字转字母  ord()字母转数字 基于ascii 码表做数字与之母的对应关系 A-Z 65-90 a-z 97-122
0-9 [48-57]
8.dir() 返回括号内对象能调用的名字

9.divmod()  返回元组 第一个数据为整除数第二个为余数

res = divmod(100,2)  (50,0)
res = divmod(100,3)  (33,1)

10.enumerate() #枚举 第一个参数为可迭代对象,第二个参数默认为零

11.eval()  # 简单的字符串型python代码,不能有逻辑

12.exec()  # 可以有逻辑的字符串型python代码

13.hash()  # 哈希加密

14.id() 查看内存地址 input() 输入函数 isinstance(l,对象) 判断第一个参数数不第二个参数的子类

15.map() 映射 max()判断最大值 min() 判断最小值

16.open() 打开文件对象返回迭代器对象

17.pow()  幂次方(次方)
res1 = pow(2,3) # 8
res2 = pow(3,2) # 9

18.range()  给定一个范围,取一个返回一个

19.round()  4舍5入在某些情况下5舍6入
res1 = round(15.5) 16
res2 = round(15.6) 16
res3 = round(98.5) 98

20.sum()  统计可迭代对象和

21.zip() 拉链

可迭代对象

可迭代对象
	对象内置__iter__方法的都称为可迭代对象
    '''
    1.通过.方式能够调用方法
    2.__iter__ 双下iter
    '''
    可迭代对象范围
    '''
    str list tuple dict set 文件对象
    '''
	不可迭代对象
    '''
    int float bool
    '''
	可迭代的含义
    '''
   	迭代:更新换代每次更新都必须依赖上一次的结果
   	例如:手机app更新
    '''
    可迭代在python中可理解为是否支持for循环

迭代器对象

迭代器对象
	是有可迭代对象调用__ietr__方法产生的
    迭代器的对象判断的本质是看内置是否有__iter__,__next__
    
迭代器的作业
	提供一种不依赖于索引取值的方式
    正因为有迭代器的存在 我们字典 集合,无序数据类型才能够被for循环

迭代器实操
	s1 = 'good'
    res = s1.__iter__()  # 迭代器对象
    res.__next__()  # g 迭代取值for循环的本质
    res.__next__()  # o
    res.__next__()  # o
    res.__next__()  # d
    res.__next__()  # 取不到值直接报错
注意事项
	可迭代对象__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身
    s1 = 'good'
    res = s1.__iter__()  # 迭代器对象
    res.__next__()  # g 迭代取值for循环的本质
    res = s1.__iter__()  # 迭代器对象
    res.__next__()  # g 迭代取值for循环的本质
    res.__next__()  # o 迭代取值for循环的本质
    
    

for循环的本质

for 临时变量名 in 可迭代对象:
    循环体代码
    
'''
1.先将in后面的数据调用__iter__转成迭代器对象
2.依次让迭代器对象调用__next__方法取值
3.再取完值后for循环自动捕捉异常报错,并处理
'''

异常捕获、异常处理

1.异常
	异常就是代码在运行中报错 我们一般叫bug
    代码运行过程中一旦遇到异常会直接结束整个程序运行 在编写代码的过程中要尽量避免
2.异常的分类
	语法错误
    	不允许出现 一旦出现理解改正 否则直接寄,开始找下家公司
    逻辑错误
    	允许出现的错误 因为它一眼发现不了代码运行之后才可能出现
3.异常结构
	错误位置
    错误类型
    错误详情
posted @ 2022-10-14 19:12  clever-cat  阅读(45)  评论(0编辑  收藏  举报