在运行时更改Python的循环范围(上限)

在运行时更改Python的循环范围(上限),python,for-loop,runtime,variable-assignment,Python,For Loop,Runtime,Variable Assignment,如何在运行时更改python for循环的上限 代码 from random import randint lower_limit = 0 higher_limit = 200 step_size = 5 for i in range(lower_limit, higher_limit, step_size): # do something higher_limit = higher_limit + randint(0, 5) 代码运行到第一个更高的限制,不关心声明的限制

如何在运行时更改python for循环的上限

代码

from random import randint

lower_limit = 0
higher_limit = 200
step_size = 5

for i in range(lower_limit, higher_limit, step_size):
    # do something

    higher_limit = higher_limit + randint(0, 5)
代码运行到第一个更高的限制,不关心声明的限制,可以做些什么来实现这一点?

您需要在以下情况下使用:

from random import randint

lower_limit = 0
higher_limit = 200
step_size = 5

while i <higher_limit:
    # do something

    higher_limit = higher_limit + randint(0, 5)
    i += 5
来自随机导入randint
下限=0
上限=200
步长=5
while i您需要使用while:

from random import randint

lower_limit = 0
higher_limit = 200
step_size = 5

while i <higher_limit:
    # do something

    higher_limit = higher_limit + randint(0, 5)
    i += 5
来自随机导入randint
下限=0
上限=200
步长=5

而i一旦创建范围,就不能修改它。我认为您可以更轻松地重新构造逻辑,并将
范围
替换为

lower_limit = 0
higher_limit = 200
step_size = 5
i = 0

while lower_limit <= i < higher_limit:
    # do something

    i = i + step_size

    higher_limit = higher_limit + randint(0, 5)
下限=0
上限=200
步长=5
i=0

而下限一旦创建范围,就不能修改它。我认为您可以更轻松地重新构造逻辑,并将
范围
替换为

lower_limit = 0
higher_limit = 200
step_size = 5
i = 0

while lower_limit <= i < higher_limit:
    # do something

    i = i + step_size

    higher_limit = higher_limit + randint(0, 5)
下限=0
上限=200
步长=5
i=0

虽然下限可能您可以定义自己的范围版本(简化):

来自随机导入randint
def更高_范围(开始、结束、步骤,包括):
i=开始
而我<直到:
产量一
i+=阶跃
最高+=randint(0,inc)
对于较高_范围(0,10,5,5)的j:
打印j

显然,不能保证它会很快终止…

也许您可以定义自己版本的range(简化版):

来自随机导入randint
def更高_范围(开始、结束、步骤,包括):
i=开始
而我<直到:
产量一
i+=阶跃
最高+=randint(0,inc)
对于较高_范围(0,10,5,5)的j:
打印j

显然,不能保证它会很快终止…

谢谢,我没有注意到这一点。我改了:)谢谢,我没注意到。我改了:)