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

这篇具有很好参考价值的文章主要介绍了匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

匿名函数和常见是内置函数(配合匿名使用)和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循环进行了异常捕捉

异常捕获

捕捉异常可以使用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

文章来源地址https://www.toymoban.com/news/detail-708578.html

到了这里,关于匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详解JS中常见的5 种 for 循环

    for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此需要彻底搞懂这 5 种 for 循环。它们分别为: for for ... in for ... of for await .. of forEach map 一、各个 for 介绍 1、for for 循环是出现最早,也是

    2024年02月02日
    浏览(32)
  • java跳出for循环的三种常见方法

    这篇文章主要给大家介绍了关于java跳出for循环的三种常见方法,需要的朋友可以参考下 一、 break语句:使用break语句可以结束整个for循环的执行: 当 i 等于5时, break 语句会将控制流程跳出 for 循环从而停止后续代码的执行。 二、 return语句:如果你想要跳出当前方法并且停止

    2024年04月23日
    浏览(35)
  • 【C++_primary】auto、范围for循环、宏函数和内联函数

    C++11 引入的 auto 在现代 C++ 编程中扮演着重要的角色。它不仅使代码更加简洁,还提供了更好的可读性和灵活性 auto 是 C++ 中的一个,用于实现类型推导 。它允许编译器在变量声明时根据初始化表达式的类型 自动推导变量的类型 。 → 这样,我们可以避免显式指

    2024年02月12日
    浏览(39)
  • 常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every

    来自于远古的遍历方式,并且涵盖多种手段,例如for in 和for of。 for循环 中使用break和continue语句(终止和跳过本次循环): for of 用来遍历数组也是可以的 for of 中也可以用break和continue for in 也可以遍历数组,但不推荐 for in 中也可以用break和continue forEach是ES5中操作数组的一种

    2024年02月08日
    浏览(51)
  • 嵌入式_常见延时方式的差异与选择(for循环延时、定时器延时、汇编延时....)

    这里整理几种常见的延时方式,并做简单测试供大家参考,如果有什么不对的地方,欢迎指正,共同探讨。 测试基于GD32F103CBT6硬件平台,标准的72MHz系统时钟, 使用标准库GD32F10x_Firmware_Library_V1.0.0 提示:(提示:此库坑多、慎用!) 测试方法为: 1:在Debug模式下延时开始于

    2024年02月02日
    浏览(84)
  • C++入门:内联函数,auto,范围for循环,nullptr

    目录 1.内联函数 1.1 概念 1.2 特性  1.3 内联函数与宏的区别 2.auto(C++11) 2.1 auto简介 2.2 auto的使用细则 2.3 auto不能推导的场景 3.基于范围的for循环(C++11) 3.1 范围for的语法 3.2 范围for的使用方法 4.指针空值nullptr(C++11) 4.1 C++98中的指针空值 以inline修饰的函数叫做内联函数,编

    2024年02月11日
    浏览(35)
  • Python 函数(lambda 匿名函数、自定义函数、装饰器)基本使用指南

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段 对于单行函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁; 对于不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序执行的性能。 格式: 一般形式 含 if

    2024年02月08日
    浏览(50)
  • 【C++初阶】引用&内联函数&auto关键字&范围for循环&nullptr

    ========================================================================= 个人主页还有更多系列专栏: 小白不是程序媛 我的小仓库: Gitee C++系列专栏: C++头疼记 ========================================================================= 目录 前言 引用 概念 引用的特点 常引用  引用的使用场景 做参数  做返

    2024年02月08日
    浏览(47)
  • 【C++】:函数重载,引用,内联函数,auto关键字,基于范围的for循环,nullptr关键字

    在C语言中,同名函数是不能出现在同一作用域的,但是在C++中却可以,但是要满足函数重载的规则。 那什么是函数重载呢?它的规则是什么呢? 函数重载 :是函数的一种特殊情况,C++允许在 同一作用域 中声明几个功能类似的 同名函数 ,这些同名函数的 形参列表(参数个数

    2024年04月26日
    浏览(52)
  • STM32【十进制-十六进制转换】无需for循环等复杂函数

    之前做项目用到这个功能,也把网上的许多例程都跑了一遍,看到一些复杂的函数也是很头疼,一些方法都是需要用sprintf来操作,但在这里并不适用,最后小鱼君询问 chatgpt 直接解决问题。 由于用到了DWIN串口屏,所以需要将一个三位数的十进制变量转化为十六进制去输出。

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包