2016-10-27 91 views
-1

我試圖找到最少的數字,您可以輸入儘可能多的數字,當您輸入-1時,它會中斷。尋找最小編號

a=int(input("What is your number of choice? ")) 
b=int(input("What is your number of choice? ")) 
c=int(input("What is your number of choice? ")) 
d=int(input("What is your number of choice? ")) 
smallest=a 

if (b < smallest): 
    smallest=b 
    while(True): 
    smallest =int(input("What is your number of choice? ")) 

    if (smallest == -1): 
     break 
if (c < smallest): 
    smallest=c 
    while(True): 
    smallest =int(input("What is your number of choice? ")) 

    if (smallest == -1): 
     break 
if (d < smallest): 
    smallest=d 
    while(True): 
    smallest =int(input("What is your number of choice? ")) 

    if (smallest == -1): 
     break 
print(smallest, " is smallest of the numbers you chose") 

我找不出如何解決它。

+5

你沒有使用'min'功能的原因? –

+0

a' - '字符不是整數 – smoggers

+0

如果對所有輸入使用函數int(),如何在函數min中獲得此異常? –

回答

1

您需要設置一個循環以允許用戶輸入多個值。跟蹤這些值可以用列表來完成,每個輸入追加到它,如下所示:

all_inputs = [] 
val = int(input('Enter a number (or -1 to finish):')) 

while val != -1: 
    all_inputs.append(val) 
    val = int(input('Enter a number (or -1 to finish):')) 

print(str(min(all_inputs)) + ' is the smallest of your numbers') 

min可以有效地找到最小輸入值。

+0

非常感謝您的幫助。我非常感謝,因爲我一直在努力奮鬥這麼久。 –

+0

不客氣!但要小心 - 如果有人輸入任何數字,它就會中斷! – asongtoruin

+0

我一定會記住這一點。 –

0

如果c小於bba小你永遠不會因爲你進入以前,而bucle達到c<smallest代碼。

此外您還需要正確縮進您的代碼。

if (b < smallest): 
    smallest=b 
    while(True): 
     smallest =int(input("What is your number of choice? ")) 

     if (smallest == -1): 
      break 

最後中斷退出方法不執行las打印行。