2017-07-16 85 views
0

我是一名初學者,參加了一個Python入門課程。我的實驗任務的第一部分要求我創建一個由用戶輸入的數字的列表。我有點困惑。我在這裏閱讀了一些其他的帖子,建議在input()。split()]中使用「a = [int(x)for x」,但我不確定如何使用它或爲什麼。我寫的基礎上,我在我的書閱讀的東西之前,代碼如下:用用戶提示的輸入創建一個列表?

while True: 
    num = int(input('Input a score (-99 terminates): ')) 
    if num == -99: 
    break 

下面是教授的問題:

在這裏你的第一個任務是輸入分數值一個名爲分數的列表,你會用while循環做到這一點。也就是說,提示用戶輸入分數 (整數)的值,並繼續這樣做直到用戶輸入-99的值。 每次輸入一個值時,您都會將輸入的分數添加到列表分數中。 終止值-99未添加到列表 因此,列表得分應首先使用 聲明初始化爲空列表: scores = [] 一旦完成輸入列表的值,定義和調用一個名爲 的查找print_scores()將接受該列表,然後打印列表中的每個值在 之間的一行按空格分隔。 您應該使用for-loop來打印列表的值。

+2

這裏是一個暗示讓你去。當你得到你的輸入時,你想要做一些像'scores.append(num)'。這將開始收集你的數字到「分數」列表中。試着在你的代碼中使用它。 – idjaw

+1

你幾乎擁有了作業第一部分所要求的內容。您只需創建一個列表來存儲用戶輸入的每個值。 –

+1

在循環之前創建一個'mylist = []',並且每當您收到一個新的'num'時都要執行'mylist.append(num)' –

回答

1

所以是的,你想不斷循環掃描,詢問輸入,並且每次檢查輸入。如果是-99,那就打破。如果不是,請將其附加到列表中。然後傳遞到打印功能

def print_list(l): 
    for num in l: 
     print(num, ' ', end='') 
l = [] 
while True: 
    s = scan("enter some number (-99 to quit)") 
    if s == "-99": 
     break 
    l.append(int(s)) 

print_list(l) 

打印(NUM,「」,結束=「」)是說「​​打印張數,一個空間,而不是換行」

+0

謝謝你的幫助:) @mauricio –

1

我認爲這將做的工作:

def print_scores(scores): 
for score in scores: 
    print(str(score), end = " ") 
print("\n") 

scores = [] 
while True: 
num = int(input('Input a score (-99 terminates)')) 
if num == -99: 
    break 
scores.append(num) 
print_scores(scores) 

scores = []創建一個空的數組和scores.append()該元素添加到列表中。

print()將採取end = ' ',這樣,每次的結果用空格代替換行(\n')分隔所有,而符合要求的分配使用循環forstr(score)確保整數被視爲一個字符串,但在這裏是多餘的。

這實際上並不是一種打印分數的優雅方式,但老師可能不想匆忙的事情。

+0

謝謝你的幫助!這現在更有意義。 :) –

相關問題