今日内容回顾
- 重要内置函数
- 常见内置函数
- 可迭代对象
- 迭代器对象
- for循环的本质
- 异常捕获/处理
今日内容详解
重要内置函数
1.zip:拉链,可以把多个列表里的数据一一对应组合在一起,成元组的形式打印出来,如果多个列表数据值个数不一致,zip会找能够一一对应的数据值,进行组合,多余的数据不会进行操作。
代码实现:
1.数据个数一致
l1 = [11, 22, 33, 44,55]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tom' ]
l3 = [1, 2, 3, 4, 5]
res = zip(l1, l2, l3)
print(list(res))
2.数据个数不一致
l1 = [11, 22, 33, 44]
l2 = ['jason', 'kevin', 'oscar', 'jerry' ]
l3 = [1, 2, 3, ]
res = zip(l1, l2, l3)
print(list(res))
2.filter 过滤,它可以和虚拟函数一起使用,过滤掉不符合条件的元素, 返回由符合条件元素组成的新列表。
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x>40, l1)
print(list(res))
3.sorted 排序,默认升序,和sort的区别是,sort是用在list上的 ,sorted可以对所有可迭代对象进行排序操作
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res)
常见内置函数
1.abs() 绝对值 类似数学的 |-100| = 100
print(abs(-100)) # 100
print(abs(100)) # 100
2.all() 所有数据值对应的布尔值为True结果才是True 否则返回False
print(all([0, 1, 2, 3])) # False
print(all([1, 2, 3, 4])) # True
3.any() 所有数据值对应的布尔值有一个为True结果就是True 否则返回False
print(any([0,None, '',1])) # True
print(any(0, None, '')) # False
4.bin() 二进制 oct 八进制 hex 十六进制 int 转为整型
5.bytes() 转换成bytes类型
s1 = '鸡哥好帅'
print(s1.encode('utf8'))
print(bytes(s1, 'utf8'))
6.callable() 判断名字是否可以加括号调用
name ='jason'
def index():
print('from index')
print(callable(name)) # False
print(callable(index)) # True
7.chr() ord() 基于ASCII码表做数字与字母的转换
print(chr(65)) # A
print(chr('A')) #65
8.dir()返回括号内对象能够调用的名字
print(dir('hello'))
9.divmod() 元组 第一个数据为整除数 第二个是余数
res = divmod(100, 2)
print(res) # (50,0)
res = divmod(100,3)
print(res) # (33,1)
"""
总数据 每页展示的数据 总页码
100 10 10
99 10 10
101 10 11
"""
page_num, more = divmod(9999, 20)
print(divmod(99, 10)) # (9, 9)
if more: # 判断有没有余数
page_num += 1
print('总页码为:', page_num) # 总页码为: 500
10.enumerate() 枚举
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
11.eval() exec() 能够识别字符串中的python并执行
s1 = 'print("哈哈哈")'
eval(s1)
exec(s1)
s2 = 'for i in range(100):print(i)'
eval(s2) # 只能识别简单的python代码 具有逻辑性的都不行
exec(s2) # 可以识别具有一定逻辑性的python代码
- hash 哈希加密
print(hash('jason'))
13.id() 查看内存地址 input() 用户交互 isinstance() 判断一个对象是否一个已知的类型
14.map() 映射 max()最大值 min()最小值
15.open打开文件
16.pow() 幂指数
print(pow(2, 2))
print(pow(2, 3))
print(pow(2, 4))
17.range()
18.round() 五舍六入
print(round(98.3))
print(round(98.6))
19.sum 求和
print(sum([11, 22, 33, 44, 55, 66]))
20.zip()拉链,可以把多个列表里的数据一一对应组合在一起,成元组的形式打印出来,如果多个列表数据值个数不一致,zip会找能够一一对应的数据值,进行组合,多余的数据不会进行操作。
可迭代对象
1.可迭代对象
对象内置有__iter__方法的都称为可迭代对象
1.1 内置方法 通过点的方式能够调用的方法
1.2 __iter__方法的都称为可迭代对象
2.可迭代对象的范围
不是可迭代对象
int float bool 函数对象
是可迭代对象
str list dict tuple set 文件对象
3.可迭代的含义
迭代:更新换代(每次更新都必须依赖上一次的结果)
可迭代在python中可以理解为是否支持for循环
迭代器对象
1.迭代器对象
是由可迭代对象调用__iter__方法产生的
迭代器对象判断的本质是看是否内置有__iter__和__next__
2.迭代器对象的作用
正因为有迭代器的存在 我们的字典 集合才能够for循环
3.迭代器对象实操
s1 = 'hello' # 可迭代对象
res = s1.__iter__() # 迭代器对象
print(res.__next__()) # 迭代取值 for循环的本质
一旦__next__取不到值 会直接报错
4.注意事项
可迭代对象调用__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身
for循环的本质
for 变量名 in 可迭代对象:
循环体代码
"""
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获并处理
"""
异常捕获/处理
1.异常
异常就是代码运行报错 行业俗语叫bug
代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中药尽可能避免
2.异常分类
语法错误
不允许出现 一旦出现立刻改正 否则提桶跑路
逻辑错误
允许出现的 因为它一眼发现不了 代码运行之后才可能会出现
3.异常结构
错误位置
错误类型
错误详情
标签:__,内置,函数,迭代,对象,res,print,100,方法
From: https://www.cnblogs.com/zjl248/p/16792646.html