2017-06-17 18 views
0

正如我在標題中所說的,我的代碼是以一種我從未遇到過的奇怪方式評估數字,我可以只是假設我犯了一些基本的錯誤。它將數字的第一位數字與任何其他數字的第一位數字進行比較,無論這是否合理。所以圖2是大於1,000,000,因爲2大於1我的python代碼是按物理位置放置數字,即7大於45,因爲7大於4.5

print('Hello, please enter five integers, one by one.') 

a = input("Enter an integer.") 
b = input("Enter an integer.") 
c = input("Enter an integer.") 
d = input("Enter an integer.") 
e = input("Enter an integer.") 

#this asks for the user to input each integer 

if a > b: 
    maxint = a 

else: 
    maxint = b 

if c > maxint: 
    maxint = c 

if d > maxint: 
    maxint = d 

if e > maxint: 
    maxint = e 

#these if statements determine the largest integer 

if a < b: 
    minint = a 
else: 
    minint = b 

if c < minint: 
    minint = c 

if d < minint: 
    minint = d 

if e < minint: 
    minint = e 

#these if statements determine the smallest integer 

a = float(a) 
b = float(b) 
c = float(c) 
d = float(d) 
e = float(e) 

mean = (a + b + c + d + e) 
mean = (mean/5) 

#this determines the average 

print('Minimum: ',minint) 
print('Maximum: ',maxint) 
print('Mean: ',mean) 

#this prints the results 

如果我輸入以下內容:

1 
7 
45 
2 
-2 

它將顯示7爲最大。這對我來說沒有意義。

+7

你沒有比較'int'。你實際上在比較'str'。你需要將你的輸入轉換爲'int'。例如:'int(input(「輸入一個整數。」))'輸入所有的輸入。 – idjaw

+0

謝謝。我覺得這是顯而易見的。 – GDaniels

+2

如果你打算處理小數,不妨用'float'來代替。 – idjaw

回答

3

您正在比較str類型不是int類型。

strstr類型是序列,因此它們一次比較一個項目。字符7大於字符4。因此str(7) > str(45)true

看看內置函數min()max()。你的代碼可以簡化:

maxint = max(a, b, c, d, e) 
minint = min(a, b, c, d, e)