常用内置函数+可迭代对象,迭代对象
常用内置函数+可迭代对象,迭代对象
重要内置函数
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.异常结构
错误位置
错误类型
错误详情