2016-01-04 34 views
0
numbers=[] 
maximum=0 
while True: 
    number =input("Enter a number:") 
    if number == "0": 
     break 
    else: 
     numbers.append(number) 
print ("The largest number entered was:") 
print (max(numbers)) 

這似乎是低於10的數字,只有當我輸入這些數字工作數是的:最大奇怪

Enter a number:10 
Enter a number:9 
Enter a number:3 
Enter a number:4 
Enter a number:23 
Enter a number:0 
The largest number entered was: 
9 

正如你所看到的,數量最多的居然是23,但它印9,我做錯了什麼?

+1

string!= number – Caramiriel

+0

'9'是輸入的最高字符串,按字典順序排列 – tom

回答

2

要附加的字符串,追加整數代替:

numbers.append(int(number))

或者更好:

while True: 
    number = int(input("Enter a number:")) 
    if not number: 
     break 
    else: 
     numbers.append(number) 

編輯:你可以用整型轉換與try-except塊,以確保用戶僅輸入數字:

while True: 
    nb = input('Enter a number:') 
    try: 
     nb = int(nb) 
     if not nb: 
      break 
     else: 
      numbers.append(nb) 
    except ValueError: 
     print('Please Enter Valid Number') 
print ("The largest number entered was:") 
print (max(numbers)) 
+0

感謝您的幫助! – potatomeister

0

Y OU可以將其追加爲int或打印maxmapintlist

print (max(map(int, numbers))) 
1

要退回辭書最大,這是9。這是由於您的建築從字符串類型numbers容器。

要返回數字最大值,請使用append(int(number))使用整數構建容器。