如何为循环创建动态范围?

Tim*_*uka 1 python loops dynamic

我的目标是创建一个 python 循环的动态范围。我知道一旦结束范围只计算一次,当它作为参数传递给范围生成器时。然而,这是一个例子:

i = 1
for i in range(1,i,1):
    print i
    i = i +1
Run Code Online (Sandbox Code Playgroud)

很明显,i=1循环被跳过了。但我希望这个范围根据i参数动态变化。

这是我想使用动态范围的情况:

  1. 我计算一个链接的容量
  2. 我计算了那个链接的带宽
  3. 我做一个循环,增加发送的流量,它应该等于容量,我称之为过载值。
  4. 递增范围从 1 到过载值。

在每次迭代中每次都会计算此重载值,并更新范围。如果说理论上过载值为 20,则范围一直到 20。

这是我的代码:

capacity = Router_1.get_tunnel_capacity()
tunnel_bandwidth = Router_1.check_bandwidth_overload()
    if tunnel_bandwidth <= capacity:
        for bandwidth in range(1, range_end, 1):
            os.system('iperf -c ' + server_address + ' -u -p 50001 -b ' + str(bandwidth) + 'M -i 1')
tunnel_bandwidth = Router_1.check_bandwidth_overload()
if tunnel_bandwidth <= capacity:
   # update the range_end according to tunnel_bandwidth
Run Code Online (Sandbox Code Playgroud)

range_end是范围的动态值。有没有办法让它动态?

Rob*_*ski 5

使用while循环而不是for循环。这是一个非常基本的例子:

z = 0
range = 10
while z < range:
    print(z)
    if z == 9:
        range = 20
    z += 1
Run Code Online (Sandbox Code Playgroud)