首页 > 其他分享 >匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获

匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获

时间:2023-09-13 20:00:35浏览次数:37  
标签:__ .__ 函数 迭代 res iter 匿名 内置 print

匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获

  • 匿名函数
  • 常见的内置函数(配合匿名函数使用)
  • 可迭代对象
  • 迭代器对象
  • for循环内部原理
  • 异常捕获

匿名函数

匿名函数不需要显示地定义函数名,使用【lambda + 参数 +表达式】的方式
 lambda [arg1 [,arg2, ... argN]] : expression

常见的内置函数(配合匿名函数使用)

# map() 会根据提供的函数对指定序列做映射。
l1 = [1, 2, 3,4,5,6]

res=map(lambda a:a*2,l1)
print(list(res))

#zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
利用 * 号操作符,可以将元组解压为列表。
l1 = [1, 2, 3,4,5,6]
l2=[1,2,3,4,5,56,7]
res=zip(l1,l2)
print(list(res))




l1 = [1, 2, 3,4,5,6]
l2=[1,2,3,4,5,56,7]
res=zip(*zip(l1,l2))
print(list(res))

#max() 方法返回给定参数的最大值,参数可以为序列。
l1 = [1, 2, 3,4,5,6]
res=max(l1)
print(res)

d = {
    'kevin': 1000,
    'jerry': 30000,
    'Tank': 200000,
    'Oscar': 100
}

print(max(d,key=lambda x:d[x]))
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
过滤出1~100中平方根是整数的数:
import math

def is_sqr(x):
    return math.sqrt(x) % 1 == 0


newlist = filter(is_sqr, range(1, 101))
print(list(newlist))

可迭代对象

迭代:更新换代,每一次的更新都是基于上一次的结果

可迭代对象:
	内置有__iter__方法的都可以称之为是可迭代对象
    '内置': 直接可以使用点出来的
    """
    	__iter__方法的读法
    	后面会有_开头的方法,这种方式也是有特殊含义的,大家最后先不要使用
    """
"""
可迭代对象:
    str、list、dict、set、tuple、文件类型
以上基本数据类型都是可迭代对象
"""
'''可迭代对象调用__iter__方法之后就是迭代器对象了'''
__iter__开头的方法都有一个与之对应的简写:iter(s) 方法名()

i = 123
f = 1.11
s = 'hello'
l = [1, 2, 3, 4]
t = (1, 2, 3, 4)
se = {1, 2, 3, 4}
d = {'a':1, 'b':2}
b = True

# i.__iter
# f.__ite
s.__iter__()
l.__iter__()
t.__iter__()
se.__iter__()
d.__iter__()
# b.__iter
file = open('a.txt', 'w')
file.__iter__()
'''可迭代对象调用__iter__方法之后就是迭代器对象了'''
print(s.__iter__()) # <str_iterator object at 0x0000023F68F31100>
print(iter(s))

def iter(s):
    return s.__iter__()

print(len(s))
print(s.__len__())

def len(s):
    return s.__len__()
"""
__iter__开头的方法都有一个与之对应的简写:iter(s) 方法名()
"""

迭代器对象

迭代器:
	内置有__iter__方法还内置有__next__方法
    
如何转为迭代器对象
	有可迭代对象调用__iter__()方法转为迭代器对象
l = [1, 2, 3, 4]
print(l.__iter__().__next__()) # 1
print(l.__iter__().__next__()) # 1
print(l.__iter__().__next__()) # 1
print(l.__iter__().__next__()) # 1

res = l.__iter__()
print(res.__next__())  # 1
print(res.__next__())  # 2
print(res.__next__())  # 3
print(res.__next__())  # 4

for循环内部原理

for循环内部的原理:
		1. 首先把关键字in后面的可迭代对象转为迭代器对象
		2. while循环取值__next__迭代取值,当next取值完毕的时候会报错
		3. 当内部报错的时候,for循环进行了异常捕捉

异常捕获

1694605854835.png

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。
try:
    正常的操作
   ......................
except:
    发生异常,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

    
    
    try:
    正常的操作
   ......................
except(Exception1[,Exception2[,...ExceptionN]]):
   发生以上多个异常中的一个,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

try-finally 语句无论是否发生异常都将执行最后的代码。

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
finally:
    print( 没有找到文件或读取文件失败")
'''
try:
    正常的操作
   ......................
except ExceptionType, Argument:
    你可以在这输出 Argument 的值...
'''
l=[1,2,3,4,5]
res= l.__iter__()
while True:
    try:
        print(res.__next__())
    except Exception:
        break

标签:__,.__,函数,迭代,res,iter,匿名,内置,print
From: https://www.cnblogs.com/zhangfanshixiaobai/p/17700592.html

相关文章

  • 无涯教程-JavaScript - ISFORMULA函数
    描述如果对包含公式的单元格的引用,则ISFORMULA函数返回逻辑值TRUE。否则返回FALSE。语法ISFORMULA(reference)争论Argument描述Required/OptionalreferenceReferencecanbeacellreference,aformula,oranamethatreferstoacell.RequiredNotes如果引......
  • 匿名函数、常见的内置函数、可迭代对象、迭代器对象、for循环的内部原理、异常捕获
    匿名函数注意:匿名函数一般不单独使用匿名函数其实就是没有名字的函数关键字lambda#匿名函数也是必须加括号才能使用匿名函数的语法格式:lambda形参:返回值defindex(形参):返回值''''''''''''res=lambdax,y:x+yprint(res(1,2))!常见内......
  • 无涯教程-JavaScript - ISEVEN函数
    描述如果数字为偶数,则ISEVEN函数返回TRUE,如果数字为奇数,则返回FALSE。语法ISEVEN(number)争论Argument描述Required/OptionalNumber要测试的值。如果number不是整数,则将其截断。RequiredNotes如果数字为非数字,则ISEVEN返回#VALUE!错误值。您可以在执......
  • Python基础分享之一 函数
    函数最重要的目的是方便我们重复使用相同的一段程序。将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。函数的定义首先,我们要定义一个函数,以说明这个函数的功能。defsquare_sum(a,b):c=a**2+b**2returnc这......
  • (转)Go语言基础——内置函数
    原文:https://blog.csdn.net/m0_60496161/article/details/130836218内置类型值类型:boolint(32or64),int8,int16,int32,int64uint(32or64),uint8(byte),uint16,uint32,uint64float32,float64stringcomplex64,complex128array--固定......
  • 无涯教程-JavaScript - ISERROR函数
    描述如果ISERROR函数引用的是Excel错误,则该函数将返回逻辑值TRUE。否则返回FALSE。语法ISERROR(value)争论Argument描述Required/OptionalvalueAnerrorRequiredNotes此函数在公式中用于测试计算输出很有用。与IF函数结合使用时,此函数提供了一种用于定位公式中......
  • 函数
    defget_squares(n:int,lo=1)->list:  """  获取指定数量的完全平方数  :paramn:指定长度  :paramlo:指定完全平方数最小值,并以此取得后面的完全平方值,默认值为1       若不为正确的完全平方值,则向下取值  :return:完全平方数......
  • 无涯教程-JavaScript - ISERR函数
    描述如果ISERR函数引用的是Excel错误(#N/A错误除外),则ISERR函数返回逻辑值TRUE。否则返回FALSE。语法ISERR(value)争论Argument描述Required/OptionalvalueAnerrorRequiredNotes此函数在公式中用于测试计算输出很有用。与IF函数结合使用时,此函数提供了一种用于......
  • c 语言 数组(一维)做函数参数
    @TOC前言函数参数:函数参数是函数内外连接的接口,可以互通数据。一、传递一维数组函数调用时,实参是给形参初始化,所以,实参传递什么类型的数据,形参就以什么类型去接住。比如一维数组,如下:函数fun1传递a,因为数组名就是数组的首地址,所以用int*p形参。函数fun2传递&a,是一维数组......
  • ODPS/MaxComputer 自定义UDF、UDTF函数
    ODPS/MaxComputer自定义UDF、UDTF函数前置条件:创建Maven工程导入jar包和打包工具:<dependency><groupId>com.aliyun.odps</groupId><artifactId>odps-sdk-udf</artifactId><version>0.29.10-public</ver......