for i in range (0, 81):
output = send command
while True:
last_byte = last_byte - offset
if last_byte > offset:
output = send command
i+
else:
output = send command
i+
break
我想在每次执行send命令时增加迭代器。现在执行for循环时它只增加一个。请告知
for i in range(0,10):
print(i)
i +=2
print("increased i", i)
我运行了这段代码,结果是从0到9。我原以为它会把迭代器增加2。
在
for
循环中不能这样做。因为每次循环重新启动时,它都会重新分配变量i
(即使在循环内部更改了它之后),每次只需增加重新分配的变量。如果您想这样做,最好使用while
循环并手动增加throwaway变量。除此之外,如果您想在一个句点上增加变量,而不是基于某个特定条件,您可以使用适当的切片器来切片循环的iterable。
例如,如果有迭代器,可以使用
itertools.islice()
;如果有列表,则可以在索引(my_list[start:end:step]
)时简单地使用步骤。将迭代器的副本另存为命名对象。如果你想的话,你可以跳到前面。
^{} 有一个可选的第三个参数来指定步骤。用它把计数器增加两个。例如:
不能像普通变量一样递增
i
的原因是,当for循环开始执行时,会创建一个列表(或Python 3+中的range对象),而i
只是递增地表示该对象中的每个值。相关问题 更多 >
编程相关推荐