Python 学习第11天 yield 和异常处理

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

复习:将列表变成生成器

a=iter([i for i in range(10)])

a.next()

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

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               试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为访问它

异常处理捕捉和处理:

常见异常处理

自定义异常处理:

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

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

finally最终执行的代码

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

else代码执行

打印出,出错的信息:

出错信息

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

报错信息如下:

异常捕捉和报错信息显示

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你不知道JS:异步 第四章:生成器(Generators) 在第二章,我们明确了采用回调表示异步流的两个关键缺点:...
    purple_force阅读 981评论 0 2
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,084评论 17 410
  • 妈妈
    泥脚书虫阅读 196评论 0 0
  • 题记:五一放假期间的星期天 一夜之间,貌似表面被安装了玻璃 并在四周套上隔音棉,星期天的朋友圈 看不见朋友的一举一...
    情岛渔夫阅读 176评论 0 2
  • 总是熬夜 熬夜 熬夜
    良辰美LiangChen阅读 137评论 0 0