2013-08-31 53 views
1

我想用原始輸入構建一個列表。如何在Python中添加raw_input列表並打印最小值和最大值

while True: 
    inp = raw_input("Enter a number: ") 

    #edge cases 
    if inp == "done" : break 
    if len(inp) < 1 : break 

    #building list 
    try: 
     num_list = [] 
     num = int(inp) 
     num_list.append(num) 
    except: 
     print "Please enter a number." 
     continue 

    #max and min functions 
    high = max(num_list) 
    low = min(num_list) 

#print results 
print "The highest number: ", high 
print "The lowest number: ", low 

print "Done!" 

目前它似乎只能一次保存一個輸入,因此上一個原始輸入被打印爲最大值和最小值。

任何想法?我是Python新手,可以使用一些方向。到目前爲止,我一直無法在StackOverflow或Python文檔中找到答案。 在此先感謝!

+1

您應該聲明並初始化while循環外的'num_list'。 –

+0

您需要在while循環之前放置「num_list = []」。如果在while循環中有「num_list = []」,則在循環的每次迭代中刪除先前輸入的所有值 – crs17

+0

Thanks Rohit。感謝crs17的解釋。事情正在起作用。 – bcal

回答

2

這是因爲您每次迭代都會一直擦除列表。把num_list = []while外循環:

num_list = [] 
while True: 
    ... 

你還應該把這兩行:

high = max(num_list) 
low = min(num_list) 

外循環。沒有理由繼續執行它們。

+0

感謝iCodez。非常感激。現在一切正常! – bcal

相關問題