首页 > 其他分享 >课堂五

课堂五

时间:2022-10-14 17:55:18浏览次数:35  
标签:迭代 22 对象 res iter print 课堂

目录

  • 补充重要内置函数
  • 常见内置函数
  • 可迭代对象
  • 迭代器对象
  • for循环内部原理
  • 异常处理

重要内置函数(补充)


  • zip 函数是可以接收多个可迭代对象,然后把每个可迭代对象中的第i个元素组合在一起,形成一个新的迭代器,类型为元组。
l1 = [11, 22, 33, 44]
l2 = ['jason', 'kevin', 'oscar', 'jerry']
l3 = [1, 2, 3, 4]
res = zip(l1, l2, l3)
print(list(res))  # [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3), (44, 'jerry', 4)]
  • zip 三个列表的长度不等,则zip所返回的迭代器的长度将有长度最短的那个列表决定。
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)]
  • filter 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
res = filter(lambda x: x < 40, l1)
print(list(res))  # [11, 22, 33]
  • sorted 排序函数 默认升序
l1 = [12, 21, 18, 17, 22, 33, 20, 5]
res = sorted(l1)
print(res)  # [5, 12, 17, 18, 20, 21, 22, 33]

常见内置函数

# 1.abs()  绝对值
print(abs(-100))
print(abs(100))
# 2.all()  所有数据值对应的布尔值为True结果才是True 否则返回False
print(all([0, 1, 2, 3]))
print(all([1, 2, 3, True]))
# 3.any()  所有数据值对应的布尔值有一个为True结果就是True 否则返回False
print(any([0, None, '', 1]))
print(any([0, None, '']))
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(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()  枚举
# 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()
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()

可迭代对象


  • 可迭代对象
    • 对象内置有_iter_方法的都称为可迭代对象
    • 内置方法:通过点的方式能够调用的方法
    • iter:双下iter方法
  • 可迭代对象的范围
    • 不是可迭代对象
      • int、float、bool、函数对象
    • 是可迭代对象
      • str、list、dict、tuple、set、文件对象
  • 可迭代的含义
    • 迭代:更新换代(每次更新都必须依赖上一次的结果)
      • eg:手机app更新
    • 可迭代在python中可以理解为是否支持for循环

迭代器对象

  • 迭代器对象
    • 是由可迭代对象调用_iter_方法产生的
    • 迭代器对象判断的本质是看是否内置有_iter_和_next_
  • 迭代器对象的作用
    • 提供了一种不依赖索引取值的方式
      正因为有迭代器的存在,我们的字典,集合才能够被for循环
  • 迭代器对象实操
s1 = 'hello'  # 可迭代对象
res = s1._iter_()  # 迭代器对象
print(res._next_())  # 迭代取值、for循环本质
一旦_next_取不到值,就会直接报错
  • 注意事项
    • 可迭代对象调用_iter_会成为迭代器对象、迭代器对象如果还调用_iter_不会有任何变化、还是迭代器对象本身

for循环内部原理

  • for 变量名 in 可迭代对象:
    • 循环体代码
  • 先将in后面的数据值调用_iter_转变成迭代器对象
  • 依次让迭代器对象调用_next_取值
  • 一旦_next_取不到值报错。for循环会自动捕获并处理

异常处理

  • 异常
    • 异常就是代码运行报错、行业俗语叫bug
    • 代码运行中一旦遇到异常会直接结束整个程序的的运行、我们在编写代码的过程中药可能避免。
  • 异常分类
    • 语法错误
      • 不允许出现、一旦出现立刻改正、否则体桶跑路
    • 逻辑错误
      • 允许出现的、因为它一眼发现不了、代码运行之后才可能会出现
  • 异常结构
    • 错误位置
    • 错误类型
    • 错误详情

标签:迭代,22,对象,res,iter,print,课堂
From: https://www.cnblogs.com/gaoli111/p/16792465.html

相关文章

  • C语音课堂笔记
    2022-10-13为了让计算机更好的帮助人们工作,于是人们设计出了计算机语言。包括(C/C++/JAVA/Python/Go)。其中,C语言被广泛应用于底层软件的开发。(电脑称为计算机的硬件,由操作......
  • 进制转换课堂笔记
    n进制转十进制:(278)n->(2*n^2+7*n^1+8*n^0)10十进制转二进制:(197)10->方法一:辗转相除197/2....198/2......049/2.....124/2.....012/2......0......
  • 课堂练习
    基本元素 <h1>一级标题</h1><p>段落元素</p><!--strong有助于搜索引擎找到重点--><b>粗体</b><strong>粗体</strong><br><!--em强调语......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
    加强数学建模训练,提高学生数学建模能力   通过结合具体的数学问题,引导高中生深入分析问题,有效地构建求解问题的数学模型,可以使学生逐步掌握数学问题求解的基本思路......
  • 三极管原理特性介绍,课堂上可不这么讲!
    今天介绍下三极管的特性,清晰易懂,老师可不这么讲。我们平时所说的三极管全称是双极性晶体管(bipolarjunctiontransistor),具有两个PN结,PNP型三极管电路符号如下所示,通常有B:基......
  • 2.2 课堂案例_输出当前路径下所有文件及文件夹
    # listdir(path)返回指定目录下的文件和信息 ,os.listdir()。(注意:返回的是str类型)importosprint(os.listdir())#listdir(path)......
  • 聪明图论课堂
    T1[ATcoderABC262E](不会)T2[CSP-S2021交通规划](不会)T3[NOI2022挑战NPCII](去补补树hash吧hh)(不会)T4[BJOI2015树的同构][模板]树同构(模板竟然紫)......
  • Java课堂学习总结
    对于Java字段的初始化来说,共有以下几种方法:1.类的构造函数(构造方法):当创建一个对象时,其构造函数就会自动调用。构造方法必须与类名相同,无返回值。如果程序员没有定义一......
  • 自我介绍及课堂展望
    自我介绍及课堂展望软件技术基础https://edu.cnblogs.com/campus/zjlg/22rjjc这个作业的目标发表一篇关于自我介绍与课程展望的博客姓名-学号<俞乐>-<20203......
  • 9.30课堂测试
    没有使用栈来完成,不够简约,仍需改进。但是实现了继承和基本要求2年纪类packagearith;importjava.util.ArrayList;importjava.util.Scanner;importjava.util.Random;......