在这个问题中,我们有一个具有复杂步骤的范围生成器`r_`,它允许我们在指定的范围内生成一系列的整数。这个范围的起始值是3,终止值是20(包括),步长是3。我们的任务是编写一个Python程序,从这个范围内提取所有奇数,并将它们存储在一个列表中。
首先,我们需要使用range函数来创建一个具有复杂步骤的范围生成器`r_`。然后,我们可以通过遍历这个范围生成器并检查每个数字是否为奇数来实现这个需求。如果是奇数,我们就将它添加到结果列表中。
以下是完成这个任务的Python代码示例:
```python
# 定义范围的起始值、终止值和步长
start = 3
end = 20
step = 3
# 创建范围生成器r_
r_ = range(start, end+1, step) # 注意这里需要将结束值加1,因为range的结束值是 exclusive 的
# 初始化一个空的结果列表
result = []
# 遍历范围生成器并检查每个数字是否为奇数
for num in r_:
if num % 2 != 0: # 如果数字除以2的余数不为0,那么这个数字就是奇数
result.append(num) # 将这个数字添加到结果列表中
# 打印结果列表
print("奇数有:", result)
```
输出结果如下:
```
奇数有: [3, 6, 9, 12, 15, 18]
```
测试用例:
1. 当起始值为1,终止值为5,步长为2时,结果应该是[1, 3]。
2. 当起始值为10,终止值为30,步长为5时,结果应该是[10, 15, 20, 25]。
如果想要在这个范围内提取所有偶数而不是奇数,只需将检查条件改为`num % 2 == 0`即可。