python range()中是否有除法或乘法之类的方法? [英] Is there any method like divide by or multiply by in python range()?

查看:54
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆