ila*_*pad 12 python iterator for-loop python-3.x
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
Run Code Online (Sandbox Code Playgroud)
我想在每次执行send命令时增加迭代器.现在它只在执行for循环时增加1.请指教
for i in range(0,10):
print(i)
i +=2
print("increased i", i)
Run Code Online (Sandbox Code Playgroud)
我运行了这段代码,它从0到9生成.我原以为它会将迭代器增加2.
Mat*_*son 12
将迭代器的副本保存为命名对象.然后,如果你愿意,你可以跳过.
>>> myiter = iter(range(0, 10))
>>> for i in myiter:
print(i)
next(myiter, None)
...
0
2
4
6
8
Run Code Online (Sandbox Code Playgroud)
你不能在for循环中做到这一点.因为每次循环重新启动时它都会重新分配变量i(即使在循环中更改它之后),并且每次只增加重新分配的变量.如果你想做这样的事情你最好使用while循环并手动增加一次性变量.
>>> i=0
>>> while i< 10 :
... print(i)
... i +=2
... print("increased i", i)
...
0
('increased i', 2)
2
('increased i', 4)
4
('increased i', 6)
6
('increased i', 8)
8
('increased i', 10)
Run Code Online (Sandbox Code Playgroud)
除此之外,如果您想在一个句点上增加变量而不是基于某个特定条件,您可以使用适当的切片器来切片您循环的迭代.
例如,如果你有一个迭代器,你可以使用,itertools.islice()如果你有一个列表,你可以在indexing(my_list[start:end:step])时简单地使用步骤.
| 归档时间: |
|
| 查看次数: |
35372 次 |
| 最近记录: |