目录
今日内容概要
- 作业讲解
- 重要内置参数
- 常见内置参数
- 可迭代对象
- 迭代器对象
- for循环内部原理
- 异常处理
今日内容详细
作业讲解
重要内置函数
1.zip() 拉链函数
# zip 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
l1 = [11, 22, 33, 44, 55]
l2 = ['jason', 'kevin', 'oscar', 'jerrry', 'tony']
l3 = [1, 2, 3, 4, 5]
res = zip(l1, l2, l3)
# [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3), (44, 'jerrry', 4), (55, 'tony', 5)]
print(list(res))
l1 = [11, 22, 33]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4]
res = zip(l1, l2, l3)
print(list(res)) # [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3)]
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
2. filter()
# filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表。
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1)
print(list(res))
# [44, 55, 66, 77, 88]
筛选出序列中为奇数的元素:
def is_odd(n):
return n%2 == 1
lst1 = filter(is_odd,[1,2,3,4,5,6,7,8,])
# [1, 3, 5, 7]
3.sorted
# sorted()函数可以对可迭代对象进行排序,并且可以人为指定排序的依据以及方式。
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res) # 默认升序
常见内置函数
1.abs() 绝对值
print(abs(-100)) # |-100| = 100
2.all() 所有数据值对应的布尔值为True结果才是True 佛iu则返回False、
print(all([0, 1, 2, 3])) # False
print(all([1, 2, 3])) # 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类型
w1 = '啊魏今天也很帅'
print(w1.encode('utf8'))
print(bytes(w1,'utf8'))
# 转换成二进制码
6.callable() 判断名字是否可以加括号调用
name = 'jason'
def index():
print('from index')
print(callable(name)) # false
print(callable(index)) # True
7.chr() ord() 基于ASCII码表做数字与字母的转换 大写英文65-90 小写 97-122
print(chr(65)) # A
print(ord('A')) # 65
8.dir() 返回括号内对象能调用的名字
print(dir('hello'))
9.divmod() 元组 第一个数据为整除数 第二个是余数
res = divmod(100, 2)
print(res) # (50, 0)
res = divmod(100, 3)
print(res)
"""
总数据 每页展示的数据 总页码
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()
# 一般用于for循环。enumerate()在遍历中可以获得索引和元素值。
list = ['python', 'java', 'c']
for index,key in enumerate(list):
print(index,key)
0 python
1 java
2 c
11.eval() exec() 能够识别字符串中的python并执行
s1 = 'print("哈哈哈")'
eval(s1) # 哈哈哈
exec(s1) # 哈哈哈
s2 = 'for i in range(100):print(i)'
eval(s2) # 报错 只能识别简单的python代码 具有逻辑性的都不行
exec(s2) # 可以识别具有一定逻辑性的python代码
12.hash() 哈希加密
print(hash('jason'))
13. id() input() isinstance()
# id() 函数用于获取对象的内存地址
input() 提示用户输入信息 实现人机交互
isinstance() :
# isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
14.map() max() min()
# 映射函数 求最大值 求最小值
15.open()
函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
16.pow() 幂指数(次方)
print(pow(2, 2)) # 4
print(pow(2, 3)) # 8
print(pow(2, 4)) # 16
17.range() 范围
18.round() 四舍五入\但是98.5 5不会进1
print(round(98.3)) # 98
print(round(98.6)) # 99
19.sum() #求和
print(sum([11, 22, 33, 44, 55, 66])) # 231
20.zip()
可迭代对象
1.可迭代对象
对象内置有__iter__方法的称为可迭代对象
"""
1.内置方法 通过点的方式能够调用的方法
2.__iter__ 双下iter方法
"""
2. 可迭代对象的范围
不是可迭代对象
int float bool 函数对象
是可迭代对象
str list dict tuple set 文件对象
"""
可以对list、tuple、dict、set、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。
"""
3. 可迭代的含义
"""
迭代:更新换代(每次更新都必须依赖上一次的结果)
eg:手机app更新
"""
可迭代在python中可以理解为是否支持for循环
迭代器对象
1.迭代器对象
是由可迭代器对象调用__inter__方法产生的 迭代器对象判断的本质是看是内置有__inter__和__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,day15,print,分享
From: https://www.cnblogs.com/wei0919/p/16792239.html