在运行时更改 Python for 循环范围(上限)
Change Python for loop range (higher limit) at runtime
如何在运行时更改 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)
代码运行到第一个更高限制并且不关心声明的限制,可以做些什么来使它工作?
你需要使用 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
范围一旦创建就无法修改。我认为您可以更轻松地重组逻辑并将 range
替换为 while
:
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)
也许你可以定义你自己的范围版本(简体):
from random import randint
def higher_range(start, upto, step, inc):
i = start
while i < upto:
yield i
i += step
upto += randint(0, inc)
for j in higher_range(0, 10, 5, 5):
print j
显然,不能保证它会很快终止...
如何在运行时更改 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)
代码运行到第一个更高限制并且不关心声明的限制,可以做些什么来使它工作?
你需要使用 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
范围一旦创建就无法修改。我认为您可以更轻松地重组逻辑并将 range
替换为 while
:
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)
也许你可以定义你自己的范围版本(简体):
from random import randint
def higher_range(start, upto, step, inc):
i = start
while i < upto:
yield i
i += step
upto += randint(0, inc)
for j in higher_range(0, 10, 5, 5):
print j
显然,不能保证它会很快终止...