python宇晨_Python 学习第11天 yield 和异常处理

主要功能:把一个函数变成生成器

复习:将列表变成生成器a=iter([i for i in range(10)])

a.next()

使用yield将函数变成生成器,保存函数执行状态

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

yield简单代码

使用yield可以控制函数的执行过程------------------------(非常重要,后续补充)

异常处理:

1.常见的异常处理和简单说明

1)AttributeError                    视图访问一个对象没有的树形,对象没有该属性,会报错

2)IOError                              输入/输出异常;基本上是无法打开文件

3)ImportError                        无法引入模块或包,基本上是路径问题或者名称错误

4)IndentationError                 语法错误(的子类);代码没有正确对齐

5)IndexError                           下标索引超出序列长度,长度为3,却试图访问第5个元素

6)KeyError                              试图访问字典里不存在的键

7)KeyboardIntereupt                Ctrl+C被按下

8)NameError                             使用一个还未被赋予对象的变量

9)SyntaxError                            python代码非法,代码不能编译(语法错误)

10)TypeError                             传入对象类型与要求不符合

11)ValueError                             传入一个调用者不期望的值,即使值的类型是正确的

12)UnboundLocalError               试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为访问它

异常处理捕捉和处理:

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

常见异常处理

自定义异常处理:

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

首先自定义一个类,并继承异常的父类

finally:无论try是否抛出异常永远执行finall中的代码,通常用来执行文件关闭,断开服务器连接等功能。不管是否有异常,都会执行finally之后的代码

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

finally最终执行的代码

else:只有没有异常的情况下,才会执行else后面的代码

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

else代码执行

打印出,出错的信息:

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

出错信息

在异常后面添加一个变量(变量名可以随便定义,图中使用的是e)

报错信息如下:

7c142454a228?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

异常捕捉和报错信息显示

异常捕捉是抓不到语法和缩进的错误。因为python在执行过程中,首先会先转成pyc格式的代码,在此时就已经检测了语法和缩进的样式问题。其他都是在执行过程中被捕捉到的。可以将上面的两个理解成在代码执行之前就已经被pyc给检测出来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值