1.
思考
:有的时候,我们会遇到这样的问题,python中常见内置方法如range()
,reversed()
解决不了我们的需求,我们则需要自己定义一种方法来实现。-
2.
解决方法
:使用生成器yield
函数'''自定义方法''' def frange(start, end, foot): x = start while x < end: yield x x += foot
3.
使用方法
:for循环对其进行迭代;
可访问可迭代对象中元素的函数
sum()
,list()
。4.
示例
:
>>> def frange(start, end, foot):
x = start
while x < end:
yield x
x += foot
>>> for i in frange(0, 5, 1.5):
print(i,end=" ")
0 1.5 3.0 4.5
>>> list(frange(0, 5, 0.125))
[0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2.0, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875, 3.0, 3.125, 3.25, 3.375, 3.5, 3.625, 3.75, 3.875, 4.0, 4.125, 4.25, 4.375, 4.5, 4.625, 4.75, 4.875]
>>> sum(frange(0, 5, 1))
10
```
* 5.`注意`:
* 函数中的`yield`语句会将函数转换成一个生成器。生成器只会在发生迭代操作时运行。