0

有人可以解释代码它是如何工作的:我不熟悉while循环

 line = file.readline()
 L1=[]
 while line != '' and line != '\n':
    line = line[:-1].split()
    L1.append(line)
    line = file.readline()

 return L1

我可以用for循环来做吗?是吗:

     for line in file.readline():
          if line !='' and line !='\n':
             line = line[:-1].split()
             L1.append(line)

     return L1
4

3 回答 3

4
  1. 从文件中读取一行。
  2. 如果该行为空或'\n',则停止。
  3. 丢弃最后一个字符(通常是'\n'strip()更好的 IMO),用空格分隔,然后附加列表。
  4. 转到步骤 1。

你的for循环的问题是它不会在空或'\n'

于 2012-11-27T03:45:03.020 回答
1

首先阅读:http ://wiki.python.org/moin/WhileLoop 这将向您解释一个while循环。

while 循环是一个在条件为真时将继续的循环,

x = 0
while x < 10:
  print(x)
  x = x + 1
print("finished")

将在 x==10 时打印出0 1 2 3 4 5 6 7 8 9 finished循环将结束并打印单词“finished”。

于 2012-11-27T03:48:08.703 回答
0

几乎。第一个示例将在读取行匹配时停止''循环或'\n'。您可以将其简化为:

from itertools import takewhile
[x.strip() for x in takewhile(lambda x: x not in ['', '\n'], file.readlines())]

这将存储文件的每一行,直到它在一个新数组中找到一个''or 。'\n

于 2012-11-27T03:49:38.493 回答