Python——匿名函数,可/迭代对象, 异常捕捉
匿名函数
常见的内置函数——配合匿名函数使用
map
zip
max
min
filter
可迭代对象
迭代器对象
for循环内部原理
异常捕获
匿名函数:
匿名函数也称为lambda函数,是一种没有函数名的函数。它是一种一次性的、在需要的时候定义,用完即丢弃的函数
例子:lambda x:x**2
lambda函数的语法结构:
lambda 形参:返回值
dsf index(形参)
返回值
lambda argument:expression
arguments表示参数列表,可以是零个或多个参数,而expression则是一个表达式,用于计算函数的返回值
在这个例子中,我们创建了一个lambda函数,将两个参数相加并返回结果。与使用def定义函数不同,我们使用lambda关键字来创建这个匿名函数
常见的内置函数 68
map ,zip,max,min,filter……
zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
map() 会根据提供的函数对指定序列列做映射(lamda)
语法 : map(function, iterable)
可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
fiter() 过滤 (lamda)
语法:fiter(function. Iterable)
function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象
def func(i): # 判断奇数
return i % 2 == 1
lst = [1,2,3,4,5,6,7,8,9]
l1 = filter(func, lst) #l1是迭代器
print(l1)
print(list(l1)
可迭代对象:
字符串 str
列表 list
元组 tuple
字典 dic
集合 set
如果一个对象实现了__iter__方法,那么这个对象就是可迭代对象。
可迭代对象 iterable
迭代器 iterator
凡是可以for循环的都属于可迭代对象
凡是可以next的都是迭代器\
迭代器一定是可迭代对象!
迭代器对象
迭代器:
内置有__iter__方法还内置有__next__方法
如何成为可迭代对象
对象实现了 _iter_ 方法
__iter__ 方法返回了迭代器对象
for循环内部原理:
1.首先把关键字in后面的可迭代对象转为迭代器对象
2.while循环取值__next__迭代取值,当next取值完毕的时候会报错
3.当内部报错的时候,for循环进行了异常捕捉
异常捕捉
什么是异常?
异常就是错误发生的信号,如果做处理,那么异常发生的位置之后的代码都不能正常运行
.Traceback,追踪信息,异常发生的位置
XXXError异常发生的类型
SyntaxError:语法错误
NameError:变量名错误
TypeError:类型错误
ZeroDivisionError:除数为零错误
IndexError:索引错误
KeyError:字典键错误
ValueError:值错误
异常的分类:
1.语法错误 (不允许出现)
2.逻辑错误 (尽量避免)
异常的处理办法:
在Python中,可以使用try-except语句来处理异常。try块中包含可能会出错的代码块,except块中则包含当发生异常时的处理代码。
在处理多个异常类型时,可以使用多个except语句。
例如
如果想捕获所有类型的异常,可以使用except语句的基本格式:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~