我创建了一个 python 脚本,它可以根据指定的阶跃函数循环一系列值。
#!/usr/bin/python
def mul(value, step): return value * step
def inc(value, step): return value + step
def step_range(start, end, step, func):
while start <= end:
yield start
start = func(start, step)
def main():
for x in step_range(1, 64, 2, mul):
print '%d, '%(x),
print
for x in step_range(0, 64, 8, inc):
print '%d, '%(x),
if __name__ == '__main__':
main()
输出:
$ python test.py
1, 2, 4, 8, 16, 32, 64,
0, 8, 16, 24, 32, 40, 48, 56, 64,
无论如何我可以摆脱辅助功能,以便用户可以做这样的事情吗?
for x in step_range(1, 64, *2):
...
def step_range(start, end, step):
while start <= end:
yield start
start = start ?step?
我被难住的?
标记......我查看了operator
模块,但我必须知道mul(a, b)
andadd(a, b)
函数的两个参数。