2011-06-15 40 views
-3

谁能告诉我这类C的蟒蛇for循环式的for循环Python版本对C for循环

for (end_timeout=1, i=0; i<TIME_OUT; i++) 
    { 
     bit = Inp32(status_register) & (1 << PtrClk); 

     if ((bit >> PtrClk) == 1) 
     { 
      end_timeout = 0; 
      break; 
     } 
    } 

感谢。

+0

根据您的姓名,您最好不要使用for-loops和sleep来执行任何类型的超时或计时代码,因为它非常容易异步。最好是轮询系统时钟。有关'range'的更多信息,请参阅'help(range)'。除非你仍然使用python2,否则不需要使用'xrange'。旁注:如果你正在迭代一个列表,你可以为''列出枚举值(myList):''。 – ninjagecko 2011-06-15 23:11:08

回答

3
end_timeout = 1 
for i in xrange(TIME_OUT): 
    ... 

这将i == 0开始循环。如果你想从i == n开始使用xrange(n, TIME_OUT)

请参阅xrange的文档。

+1

由于您不知道OP是否使用Python 2或3,我不会使用xrange。 – Voo 2011-06-15 22:52:47

+0

@Voo:的确,我不这样做,但是如果他们使用python 2,我更喜欢'范围'上的'xrange'。 – 2011-06-15 22:58:12

5
end_timeout = 1 
for i in range(TIME_OUT): 
    pass 
1
end_timeout = 1 
for i in range(TIME_OUT): 
    # ...your code