首页 > 其他分享 >迭代器和异常捕捉

迭代器和异常捕捉

时间:2023-06-05 21:23:59浏览次数:30  
标签:__ .__ 迭代 错误 iter 捕捉 print 异常

可迭代对象

可迭代对象的定义:

  内置有__iter__()方法的都可以称之为是可迭代对象。

可迭代对象有字符串、列表、元组、字典、集合等

迭代器对象

迭代器对象:迭代器

迭代器对象的定义:

  既内置了__iter__()方法,又内置了__next__方法就是迭代器对象

迭代器是一种不依赖于索引取值的方式

一次调用可供持续取值,重新调用则会重置

l1 = [11, 33, 44, 5, 66]
res = l1.__iter__()
print(res.__next__())  # 11
print(res.__next__())  # 33
print(l1.__iter__().__next__())  # 11

异常捕获

异常就是错误发生的信号,如果不做处理,后面的程序就无法正常运行

1.异常分类 

  1.Traceback

  是异常位置所在处,可以直接定位到异常发生的位置

  2.XXXError

  错误的类型

  3.XXXError后面的详细信息

  错误的描述,一般我们直接看错误的详细信息都可以定位原因

  4.异常的类型

  1.语法错误:坚决不允许,容易解决,借助于pycharm工具就可以很容易的定位到

  2.逻辑错误:是允许出现的,但是我们在写代码的时候,尽量的避免逻辑错误

 2.XXXError错误类型

1.NameError  变量名错误

2.IndexError  索引错误

3.KeyError  取值错误

4.ZeroDivisionError

3.解决错误

预测可能出现的错误提前解决让代码正常运行

"""
  语法结构:
  try:
    被监测的代码:一般是可能会发生的错误
  except 错误类型1 as e:
    print(e)
  except Exception as e:   # 能够接收所有的错误类型
    print(e)
  else:
    # 有异常时不执行,不能和try 单独使用
  finally:
    # 不管有无异常都会执行
"""

assert :断言你一定是正确的,成功的,可行的

# assert 条件  # 条件必须成立,如果不成立,代码在这一行直接中断

for 循环原理

测试题(不用for 打印列表内容)

方法1.while循环

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
res = l.__iter__()
while True:
    try:
        print(res.__next__())     # 打印列表所有值
    except Exception:    # 直到读取完报错时,跳出循环结束读取
        break

方法2.递归函数

l = [1, 2, 3, 4, 5, 6]

res = l.__iter__()
def a(x):
    try:
        print(x.__next__())
    except StopIteration:
        return
    a(x)

for循环的本质:

  1.先把关键字in后面的变量调用__iter__()方法变成迭代器对象

  2.内部开始循环__next__()取值

  3.当值取完之后代码会报错,一旦报错,我们做异常处理直接结束掉循环

 

标签:__,.__,迭代,错误,iter,捕捉,print,异常
From: https://www.cnblogs.com/Lucky-Hua/p/17458942.html

相关文章

  • python文件路径和内容处理以及异常处理
    1.文件路径绝对路径和相对路径绝对路径:绝对路径,从盘符开始的路径(d:\data\file\abc.txt)frompathlibimportPathpath=Path('test.txt')print(path.absolute())相对路径:相对于当前的路径,当前是一个变量,在执行python时,所处的目录(./abc/a.txt ../ab/c.txttest.txt)没有......
  • pb中关闭子窗口时给父窗口传回值,message捕捉到该值
    点击“确认”关闭子窗口触发函数clicked()  ......
  • jack-server导致 Android 编译 出现异常
    错误代码如下:[2%39/1330]EnsureJackserverisinstalledandstartedFAILED:/bin/bash-c"(prebuilts/sdk/tools/jack-admininstall-serverprebuilts/sdk/tools/jack-launcher.jarprebuilts/sdk/tools/jack-server-4.8.ALPHA.jar2>&1||(exit0))&am......
  • lattice的ipexpress异常,解决办法
    最近ip服务器可能会遇到问题,建议客户把更新检查关掉。我们有对应的IP下载链接。https://www.latticesemi.com/ispupdate/ipexpress/https://radiantip.latticesemi.com/IP_Repository/或者按下面操作ThepatchmodifiestheURLsinthe.inifile.Customerscould......
  • 浅谈java异常[Exception]
    评:一.异常的定义在《java编程思想》中这样定义异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要提出异常处理机制,就是要......
  • java的异常
    异常:程序中发生的不正常的情况成为异常(语法错误和逻辑错误不是异常)。异常分为两类:1.Error:java虚拟机无法解决的严重问题,程序会崩溃,如栈溢出(stackoverflowerror)、内存不足等2.Exception:由于编程错误或外在因素导致的一般性问题,可以使用正对行的代码进行处理,如......
  • android webview 使用以及一些常见的异常处理
    android中的提供webview控件,可以方便开发人员是自己的应用嵌入网页浏览功能,但实际开发中却会遇到一些问题,这个稍后会介绍到,效果图: 先来看个实例: 1.publicclassMainActivityextendsActivity{2.finalStringCOMPANY_WEB=;3.privateWebViewmWebView;4.......
  • C# 编译异常CS0433
    编译后遇到nuget版本冲突:errorCS0433:类型“ShellFile”同时存在于“Microsoft.WindowsAPICodePack.Shell,Version=1.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”和“Microsoft.WindowsAPICodePack.Shell,Version=1.1.0.0,Culture=neutral,PublicKeyToken=nu......
  • ASP.NET Core 全局异常处理
    IAsyncExceptionFilter在ASP.NETCore中,可以使用异常过滤器(ExceptionFilter)来捕获和处理应用程序中的异常。IExceptionFilter接口和IAsyncExceptionFilter接口都可以用来实现自定义的异常过滤器。不过我更建议您考虑它的异步版本:IAsyncExceptionFilter。publicclassCust......
  • Spring MVC 全局的异常处理
    Spring异常处理配置[url]http://panyongzheng.iteye.com/blog/2208146[/url]spring基于注解的全局异常处理方式[url]http://panyongzheng.iteye.com/blog/2067110[/url]使用SpringMVC统一异常处理实战[url]http://panyongzheng.iteye.com/blog/2213655[/url][color=red]怎么......