11 生成器和迭代器

一.生成器

上节课协议中介绍了迭代器协议,但是需要定义类,而只用函数可以生成的就叫做生成器

1.生成器的关键字是 yield ,它的作用和 return (结束方法并带出返回值)相似,都有暂停方法和带出返回值的作用。

在这里插入图片描述
2.斐波那契数列

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34…观察可得后一个数等于前两个数相加,如下,n 表示次数(代码块放在末尾)

在这里插入图片描述

二.装饰器

装饰器是在不改动原来函数的前提下,增加功能。。

语法格式:
def 装饰器函数名:
def 功能函数名():
功能
return 功能函数名

在这里插入图片描述

使用装饰器:@装饰器函数名

在这里插入图片描述

在调用装饰器的时候,会把函数作为参数传入装饰器(def upgrade)中。之后执行函数返回的内容,就是 drilling

内置装饰器:

(1)property(调用方法和调用属性一样,coco.play 后就不用加括号了)

在这里插入图片描述
(2)classmethod(第一个参数自动传入)

在这里插入图片描述

(3)staticmethod(不再自动传入 self 或者 cls )

在这里插入图片描述

三.异常

1.认识异常
在这里插入图片描述

例如上图,1除以0是错的,所以会报错。

(1)

这个表示报错信息

(2)
在这里插入图片描述
这个表示报错位置在C盘\Users\Admin\Desktop\计算机py\11生成器 迭代器\test.py 文件中的 98 行,但是我们不需要去数行数,因为在编辑模式的右下角会显示光标所在行数(Ln)

在这里插入图片描述

(3)
在这里插入图片描述
这个则表示是哪一个错误

(4)
在这里插入图片描述

而这种错误一般会直接出现提示框,点完确定后会告诉你错误的位置,红色标注的就是错误的位置或是提示你在标红的前面出现错误,一般是标红之前,错误是缺少缩进或用中文编码或是符号。(错误的地方是用中文写的括号,就是在标红之前)

2.异常的处理方法(报错也进行执行)

(1)异常处理语法:
try(捕捉):
可能出现报错的代码放入 try :缩进里面
except(处理):
try 里面的代码报错执行 except :缩进里面的代码

在这里插入图片描述

(2) except Exception as e

不进行报错,但会出现错误原因。如下:invalid literal for int() with base 10: ‘级’
在这里插入图片描述

(3)细致处理异常

在这里插入图片描述

(4)断言(assert)

和 if 类似,不同点是如果为False直接报错

在这里插入图片描述

在这里插入图片描述

斐波那契:

def fibonacci(end):
    n,a,b = 0,0,1
    while n < end:
        a,b = b,a+b
        yield b
        n += 1
a = fibonacci(12)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风和云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值