今日内容概要
- 作业讲解
- 重要内置参数
- 常见内置参数
- 可迭代对象
- 迭代器对象
- for循环内部原理
- 异常处理
今日内容详细
作业讲解
重要内置函数
| 1.zip() 拉链函数 |
| |
| l1 = [11, 22, 33, 44, 55] |
| l2 = ['jason', 'kevin', 'oscar', 'jerrry', 'tony'] |
| l3 = [1, 2, 3, 4, 5] |
| res = zip(l1, l2, l3) |
| |
| 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)) |
| 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表 |
| |
| 2. filter() |
| |
| l1 = [11, 22, 33, 44, 55, 66, 77, 88] |
| res = filter(lambda x: x > 40, l1) |
| print(list(res)) |
| |
| |
| 筛选出序列中为奇数的元素: |
| def is_odd(n): |
| return n%2 == 1 |
| lst1 = filter(is_odd,[1,2,3,4,5,6,7,8,]) |
| |
| |
| 3.sorted |
| |
| l1 = [21, 12, 53, 64, 76, 32, 11, 22] |
| res = sorted(l1) |
| print(res) |
常见内置函数
| 1.abs() 绝对值 |
| print(abs(-100)) |
| |
| 2.all() 所有数据值对应的布尔值为True结果才是True 佛iu则返回False、 |
| print(all([0, 1, 2, 3])) |
| print(all([1, 2, 3])) |
| |
| 3.any() |
| |
| print(any([0, None, '', 1])) |
| print(any([0, None, ''])) |
| |
| 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)) |
| print(callable(index)) |
| |
| 7.chr() ord() 基于ASCII码表做数字与字母的转换 大写英文65-90 小写 97-122 |
| print(chr(65)) |
| print(ord('A')) |
| |
| 8.dir() 返回括号内对象能调用的名字 |
| print(dir('hello')) |
| |
| 9.divmod() 元组 第一个数据为整除数 第二个是余数 |
| res = divmod(100, 2) |
| print(res) |
| 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)) |
| if more: |
| page_num += 1 |
| print('总页码为', page_num) |
| |
| 10. 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) |
| exec(s2) |
| |
| 12.hash() 哈希加密 |
| print(hash('jason')) |
| |
| 13. id() input() isinstance() |
| |
| input() 提示用户输入信息 实现人机交互 |
| isinstance() : |
| |
| |
| 14.map() max() min() |
| |
| 15.open() |
| 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。 |
| |
| 16.pow() 幂指数(次方) |
| print(pow(2, 2)) |
| print(pow(2, 3)) |
| print(pow(2, 4)) |
| |
| 17.range() 范围 |
| 18.round() 四舍五入\但是98.5 5不会进1 |
| print(round(98.3)) |
| print(round(98.6)) |
| |
| 19.sum() |
| print(sum([11, 22, 33, 44, 55, 66])) |
| 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__()) |
| 一旦__next__取不到值 会直接报错 |
| 4.注意事项 |
| 可迭代对象调用__iter__会成为迭代器对象 |
| 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身 |
for循环本质
| for 变量名 in 可迭代对象: |
| 循环体代码 |
| """ |
| 1.先将in后面的数据调用__iter__转变成迭代器对象 |
| 2.依次让迭代器对象调用__next__取值 |
| 3.一旦__next__取不到值报错 for循环会自动捕获并处理 |
| """ |
异常捕获/处理
| 1.异常 |
| 异常就是代码运行报错 行业俗语叫bug |
| 代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中药尽可能避免 |
| 2.异常分类 |
| 语法错误 |
| 不允许出现 一旦出现立刻改正 否则提桶跑路 |
| 逻辑错误 |
| 允许出现的 因为它一眼发现不了 代码运行之后才可能会出现 |
| 3.异常结构 |
| 错误位置 |
| 错误类型 |
| 错误详情 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构