python range()中是否有除法或乘法之类的方法? [英] Is there any method like divide by or multiply by in python range()?
本文介绍了python range()中是否有除法或乘法之类的方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于java,我们可以这样做:
for java, we can do:
for(int i=100; i>2 ; i=i/2){things to execute}
但是如果在 python 中呢?
but what if in python?
有没有类似的东西
for i in range(100:2:something)
能解决这个问题吗?
推荐答案
如果你需要一些简单的东西并且你可以在几个地方手头有东西,你可以创建一个生成器函数:
If you need something simple which you can have at hand at several places, you can create a generator function:
def range_divide(start, end, denominator): # TODO: Think for a better name!
value = start
while value > end:
yield value
value /= denominator
然后做
for value in range_divide(100, 2, 2):
# do_stuff
你甚至可以用
def range_flexible(start, end, action):
value = start
while value > end:
yield value
value = action(value)
然后做
for value in range_flexible(100, 2, lambda x: x/2):
# do_stuff
甚至
def for_loop(start, cont_condition, action):
value = start
while cont_condition(value):
yield value
value = action(value)
for value in for_loop(100, lambda x: x > 2, lambda x: x/2):
# do_stuff
这篇关于python range()中是否有除法或乘法之类的方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文