有人可以解释代码

时间:2012-11-27 03:39:18

标签: python

有人可以解释代码如何工作: 我不熟悉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

3 个答案:

答案 0 :(得分:4)

  1. 从文件中读取一行。
  2. 如果该行为空或'\n',请停止。
  3. 丢弃最后一个字符(通常是'\n'strip()是更好的IMO),按空格分割,然后附加列表。
  4. 转到第1步。
  5. 您的for循环问题在于它不会停在空或'\n'

答案 1 :(得分:1)

首先阅读:http://wiki.python.org/moin/WhileLoop 这将解释一段时间给你。

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

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

将打印0 1 2 3 4 5 6 7 8 9 finished当x == 10时,循环将结束,并且将打印“已完成”字样。

答案 2 :(得分:0)

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

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

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