2014-05-16 61 views
-3

我已經閱讀了類似主題的其他問題,但我只是不明白,沒有一個能夠工作。所以這裏是我的代碼,我需要做的是讓用戶輸入一個數字,然後決定是否要繼續。一旦完成,我會調用一個函數來檢查他們輸入的是最小的數字。檢查最小的數字部分是對的,但我不能得到yes/no的輸入來處理其餘的代碼。請幫忙!有來自用戶的是/否輸入確定while循環是否繼續

listnum = [] 

def EnteringNum(): 
    done = False 
    while not done: 
     num = input("Enter a number!") 
     listnum.append(num) 
     con = raw_input("Do you wish to continue?") 
     if con.startswith("n") or con.startswith("N"): 
      exit() 

def Smallest(listnum): 
    lowest = listnum[0] 
    for i in range(len(listnum)): 
     if listnum[i] < lowest: 
      lowest = listnum[i] 
    print lowest 

EnteringNum() 
Smallest(listnum) 
+2

「我只是不明白」 - 好,你不明白的是什麼?你讀過什麼問題?他們應該已經解釋了具體做什麼。我們可以指出你需要做出的改變 - 事實上,有人可能會在幾分鐘內做到這一點 - 但這可能不會解決你的理解,或教你用類似問題的答案來解決問題。 – user2357112

+1

你應該清楚地說明當你運行你的代碼時發生了什麼。我假設'exit()'是一個錯誤,但如果你說出了詳細的錯誤,寫一個答案會容易得多。 – Blckknght

回答

-1

運行exit()將退出您的整個程序。如果你只是想結束循環,你可以把它改成

def EnteringNum(): 
    listnum = [] 
    done = False 
    while not done: 
    num = input("Enter a number!") 
    listnum.append(num) 
    con = raw_input("Do you wish to continue?") 
    if con.startswith("n") or con.startswith("N"): 
     done = True 
    return listunum 

,或者你可以擺脫if條款與

con = raw_input('Do you wish to continue?') 
done = con.startswith("n") or con.startswith("N") 

因爲con.startswith....返回boolean。一旦你的done變成true,它將結束循環。

因爲我們現在在函數初始化listnum,我們把它叫做

numbers = EnteringNum() 
Smallest(numbers) 
+0

我不認爲全球'listnum'是提問者問題的一部分(儘管從設計的角度來看這可能是一個壞主意)。除了混合,這是一個很好的答案! – Blckknght

0

反而,exit(),只是把break

listnum = [] 

def EnteringNum(): 
    done = False 
    while not done: 
     num = input("Enter a number!") 
     listnum.append(num) 
     con = raw_input("Do you wish to continue?") 
     if con.lower().startswith("n"): 
      break 

def Smallest(listnum): 
    lowest = listnum[0] 
    for i in range(len(listnum)): 
     if listnum[i] < lowest: 
      lowest = listnum[i] 
    print lowest 

EnteringNum() 
Smallest(listnum) 
相關問題