while循环调用数组外

时间:2016-04-06 20:02:54

标签: python loops if-statement for-loop while-loop

我再次开始,谢谢大家的回复。

我有一个日志文件,我拿走了该条目并从中删除了所有垃圾。 我剩下的数组或列表就是这个

23
23.23.23.23
45
45.45.45.45
100
34.34.54.13

我如何称呼我想要的每条线就是这个。

a = 1
while a < 18:
    a = a + 2
    #logging.debug(line.split(PID_ANDROID)[a])
    countIP = a
    trySomething()

    if a == 20:
        break

但我打电话后必须做的事情。 我希望能够使用第一个条目,

> do something 
> see if something is happening
> if its not goto 3rd entry
> try the same thing again.

这就是我所坚持的。 因为当我从其他内部调用它时,我使用全局存储。 python告诉我,我不能使用str或turp。或者使用下面的代码,我可以继续输出列表中的所有内容。

atm我有这段代码。

def trySomething():
global countIP
global LOG_SPLITER
#logging.debug('Processing Number: %s' % (countIP,))
logging.debug(LOG_SPLITER.split(PID_ANDROID)[countIP])
time.sleep(.5)
clearScreen()
#grabBox90()
#lineGoto()

我的问题是。 我怎么能做循环,一次只抽出一个用它做一些事情,当我完成循环转到下一个循环?

2 个答案:

答案 0 :(得分:0)

看起来好像你应该使用一个初始索引为1且步长为2的for循环。或者,使用显式调试语句作为值1,然后循环其余部分,从3开始,以避免如果测试。如果代码的其余部分要增加1而不是2,那么这允许您在仍然具有循环的情况下正确地执行初始跳过。

而不是

for i in range(1,20,2):
  # do you processing

Python 2

{{1}}

Python 3

{{1}}

答案 1 :(得分:0)

如果您只想记录line中的每个条目,您可以执行以下操作:

entries = line.split(PID_ANDROID)
for e in entries[::2]:  # take every other element
    logging.debug(e)

对条目进行迭代是“更加pythonic”。

相关问题