举几个使用生成器函数的例子
时间: 2023-12-29 17:01:59 浏览: 76
好的,下面是几个使用生成器函数的例子:
1. 生成数字序列
```python
def number_sequence(start, end):
for i in range(start, end+1):
yield i
```
上面的代码定义了一个生成器函数number_sequence,它接收两个参数start和end,用于指定数字序列的起始值和结束值。在函数中,我们使用for循环来生成数字序列中的每一个数字,然后使用yield语句来返回这个数字。通过调用生成器函数,我们可以逐步获取数字序列中的每一个数字:
```python
for i in number_sequence(1, 10):
print(i)
```
输出:
```
1
2
3
4
5
6
7
8
9
10
```
2. 生成斐波那契数列
```python
def fibonacci(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
```
上面的代码定义了一个生成器函数fibonacci,它接收一个整数n作为参数,用于指定斐波那契数列的项数。在函数中,我们使用for循环来生成斐波那契数列中的每一项,然后使用yield语句来返回这个数列项。通过调用生成器函数,我们可以逐步获取斐波那契数列中的每一项:
```python
for i in fibonacci(10):
print(i)
```
输出:
```
0
1
1
2
3
5
8
13
21
34
```
3. 生成指定长度的随机字符串
```python
import random
import string
def random_string(length):
letters = string.ascii_lowercase
for i in range(length):
yield random.choice(letters)
```
上面的代码定义了一个生成器函数random_string,它接收一个整数length作为参数,用于指定随机字符串的长度。在函数中,我们使用for循环来生成指定长度的随机字符串,然后使用yield语句来返回字符串中的每一个字符。通过调用生成器函数,我们可以逐步获取随机字符串中的每一个字符:
```python
for c in random_string(10):
print(c)
```
输出:
```
u
l
v
e
y
i
m
d
r
g
```
阅读全文