2012-11-27 276 views
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

你是否搜索「while循環」? –

+0

你是否在Python中使用了「for」循環? –

回答

4
  1. 從文件中讀取一行。
  2. 如果該行爲空或'\n',則停止。
  3. 丟棄最後一個字符(它通常是'\n'strip()是更好的國際海事組織),由空白分割,然後追加列表。
  4. 轉到步驟1

並與您的for循環的問題是,它不會停止對空或'\n'

1

首先閱讀:http://wiki.python.org/moin/WhileLoop 這將解釋while循環給你。

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循環將結束,「完成」一詞將被打印。

0

差不多。第一個示例將在停止讀取與'''\n'匹配的行時循環。你可以把它簡化爲這樣:

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

這將存儲文件的每一行,直到它找到一個'''\n,在一個新的數組。

+4

他不明白_he_已發佈的代碼。你認爲他會理解你剛發佈的代碼嗎?單線? –

+1

可能不是,但發現此頁面的人可能會發現它很有用,甚至可能在將來OP的某個時間。它不會受到暴露。 – Aesthete

+0

我覺得它很有用,因爲我喜歡看該語言功能的示例,但它確實沒有解決「我不懂代碼」這個問題。 – eminor