2014-11-21 224 views
-2
num = int(raw_input()) 


list1 = [] 

while num != 10: 
list1.append(num) 
if num == 10: 
    break 
    print "quit" 
    print list1 

我不明白爲什麼這不起作用,任何人都可以解釋? 基本上我只是想讓它反覆運行,直到輸入數字10,然後打印列表中的每個項目都試圖附加到它。不能工作爲什麼這個while循環不起作用

嘿感謝球員(尤其是英鎊)我愚蠢地忘了把原料輸入到循環

list1 = [] 
num = 0 
while num != 10: 
    num = int(raw_input()) 
    list1.append(num) 
if num == 10: 
    print "quit" 
print list1 
+0

你得到了什麼錯誤信息? – dazedconfused 2014-11-21 01:12:56

+0

需要一個語言標籤。 – Thilo 2014-11-21 01:14:07

+0

閱讀教程。這段代碼甚至沒有正確縮進。 – simonzack 2014-11-21 01:16:17

回答

0

提示:

  1. 你沒有得到輸入迴路,你獲得一次輸入。
  2. 什麼是bar?你沒有定義它。你的意思是num
  3. 您的縮進已關閉。 (這對Python很重要)。
  4. 如果您將print "quit"print list1放在if語句的內部,但突破它,您將永遠不會執行這些語句。 (雖然這可以使用正確的縮進來固定)
+0

爲什麼倒票? – Dair 2014-11-21 01:19:20

+0

我不知道;我雖然贊成你 - 這是一個蹩腳的問題,但你給了它一個很好的,有幫助的,徹底的建議。 – TessellatingHeckler 2014-11-21 01:21:05

+0

嘿thankyou磅,我想我剛剛寫了原始輸入,並忘記了它,把它放在裏面工作:-)謝謝 – 2014-11-21 01:27:58

0

首先,您的代碼縮進處於關閉狀態。

num = int(raw_input()) 


list1 = [] 

while num != 10: 
list1.append(bar) 
if num == 10: 
    break 
    print "quit" 
    print list1 

while循環內的代碼應該縮進另一個級別。同樣,在我們添加numlist1以防止我們捕獲list1(除非需要)之前我們應該中斷。這導致以下結果。

num = int(raw_input()) 
list1 = [] 
while num != 10: 
    if num == 10: 
     break 
    list1.append(bar) 
print "quit" 
print list1 

現在我們來看看num作業的問題。 raw_input只調用一次,因此您只能輸入一次值。然後,您嘗試在您的list1附加值bar(這是您的代碼中不存在的變量)。

取而代之,讓我們重構一下,以在while循環中捕獲raw_input。首先,我們分配num""(空字符串),然後在循環期間接收新值。

請注意,我刪除了鑄件到int,因爲我們需要重新使用此輸入作爲string而不是int。另外請注意,我現在通過使用引號比較數字來執行字符串比較,而不是比較整數值。

list1 = [] 
num = "" 
while num != "10": 
    num = raw_input() 
    if num == "10": 
     break 
    list1.append(num) 
print "quit" 
print list1 

這是已完成的代碼,這增加了新的raw_input值從用戶到list1直到10一個值被提供,在該點它停止執行並打印list1

相關問題