2016-10-25 50 views
0

我想創建一個函數,它需要一個sentinel值(整數),並返回一個整數列表。該函數提示用戶創建一個整數列表,使用提供的標記值作爲用戶輸入到 的編號退出創建列表。答案請說那樣簡單使用任何技術太超前,因爲我仍然在學習Python和不想跳太遠可能副歌...創建一個函數,使整數列表

def createIntList(): 
    createlist = [] 
    while myInt != addNum: #having problems around here!! 
     myInt = input("What do you want the sentinel to be?") 
     addNum = input("Please enter a number, ", myInt, "to stop: ") 
    createlist.append(addNum) 
    return createlist 
+0

的Python的什麼版本?你也試圖在創建它們之前比較變量.... – MooingRawr

+0

'addNum'定義在哪裏? –

+0

定義了myInt? –

回答

1

這真的是什麼iter是,這可能需要作爲第一個參數的函數,它沒有參數和返回值,併爲其第二個參數一個前哨值,告訴何時停止

def get_int(prompt="Enter a number:"): 
    return input(prompt) 

sentinal = input("Enter your sentinal:") 
print(list(iter(get_int,sentinal))) 

它或者你可以寫一個方法來接受數據直到你的領主到達...

def input_until(prompt,sentinal): 
    a = [] 
    while True: 
     tmp = input(prompt) 
     if tmp == sentinal: return a 
     a.append(tmp) 

你可以爲你的現有代碼的最小變化是

def createIntList(): 
    createlist = [] 
    #define both variables before your loop 
    myInt = input("What do you want the sentinel to be?") 
    addNum = None 
    while myInt != addNum: #having problems around here!! 
     #dont ask each time for a new sentinal... 
     addNum = input("Please enter a number, "+ str(myInt)+ " to stop: ") 
     createlist.append(addNum) # append your values inside the list... 
    return createlist 
+0

當我嘗試通過def main調用它時運行它。我得到一個錯誤, 高清的main(): 文件 「hw6.py」 37行,在: createIntList() 的main() 我得到這樣 回溯(最近通話最後一個)錯誤 主() 文件 「hw6.py」,線35,在主 createIntList() 文件 「hw6.py」,第22行,在createIntList addNum =輸入( 「請輸入一個數字,」 敏, 「停止:」) TypeError:最多輸入1個參數,得到3 –

+0

這就是說您輸入錯誤了......輸入不像打印,您只需用逗號連接字符串......參見我的編輯我改變了你的代碼來解決這個錯誤也....這個類可能真的很難你你應該參考Python輸入文檔' –

相關問題