2012-02-01 186 views
1

可能重複指定變量值:
Is there any way to do variable assignments directly inside a while(<here>) loop in Python?if或while語句

對不起這樣一個基本問題。我試圖學習Python,但實際上還沒有找到答案。

在Python中,我可以爲whileif語句中的變量賦值嗎?如果是這樣,怎麼樣?

例如。我不得不這樣做:

line_list = [] 
while True: 
    line = raw_input(">>> ") 
    if not line: break 
    line_list.append(line) 
print line_list 

,但我想這樣做:

line_list = [] 
while line = raw_input(">>> "): 
    line_list.append(line) 
print line_list 

我看的教程沒有提到這種或那種方式,但是這是一個大多數其他語言的常見結構。

+4

這是無法完成的。如果你搜索,你會發現你不是第一個要問的人。 「大多數其他語言中的共同結構」也是錯誤的。在C,C++和專門針對C類功能的語言中很常見。這不是*大多數*。 – 2012-02-01 20:11:38

回答

6

正如弗雷德裏克的回答表明,這是不可能分配給一個變量的一個whileif,但是基本上可以做到使用iter()與功能/定點調用格式相同的事情:

for line in iter(lambda: raw_input(">>>"), ""): 
    line_list.append(line) 
+0

不錯,我不知道這個構造! – kindall 2012-02-01 20:37:26

7

這是不可能的。 Python中的Assignments是語句,而不是表達式。

它們不會評估爲已分配的值,也不會像其他語言中慣用的那樣返回對被分配對象的引用。

0

你不這裏不想使用while循環!無限地附加到列表中,一旦輸入了某個輸入並且「輸入」被擊中。

這應該工作:

while 1: 
    line = raw_input(">>> ") 
    if line: 
     line_list.append(line) 

當然,這是不一樣的東西,但是它爲你想要的東西,至於我可以告訴。