【发布时间】:2019-11-21 01:22:02
【问题描述】:
我的目标是创建一个 Python 循环的动态范围。我知道一旦结束范围只计算一次,当它作为参数传递给范围生成器时。然而,这是一个例子:
i = 1
for i in range(1,i,1):
print i
i = i +1
很明显,i=1 会跳过循环。但我希望这个范围根据i参数动态变化。
这是我想使用动态范围的情况:
- 我计算一个链路的容量
- 我计算该链路的带宽
- 我做了一个循环,发送的流量应该等于容量,我称之为过载值。
- 增加的范围是从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
range_end 是范围的动态值。有没有办法让它动态化?
【问题讨论】:
-
1.还使用变量作为结束参数? 2.在循环内更改
i不会有你期望的效果 -
改用
while循环。