2017-03-02 84 views
2

雖然輸入負數如下,我想提取最大值。我預計該值爲-0.123,但實際值(在Python 3.6.0 shell中)爲-45.02。這裏是我的代碼:蟒蛇最大負值

x=input("Enter value of X :") 
y=input("Enter value of y :") 
Z=input("Enter value of Z :") 

print("Display of max value") 
print(max(x,y,Z)) 

輸入( 「請按Enter鍵退出」)

,其輸出:

Enter value of X :-45.02 
Enter value of y :-0.123 
Enter value of Z :-1.136 
Display of max value 
-45.02 

你能不能幫我找出這個結果?

+2

當您想要比較數字時,您正在比較使用字典順序的字符串。在輸入'max'之前將輸入轉換爲'float'。 –

回答

3

正如@MarkDickinson所說,你必須轉換爲浮點數來比較數字。如果不將這些數字作爲字符串進行比較(例如,"10"出現在"7"之前,因爲它一次比較一個字符;在此情況下爲"1""7")。所以,試試這個:

try:  
    x=float(input("Enter value of X :")) 
    y=float(input("Enter value of y :")) 
    Z=float(input("Enter value of Z :")) 
except ValueError: 
    print('Could not convert to float!') 
    exit() 
else: 
    print("Display of max value:", max(x,y,Z)) 

在你的情況下,"-45.02"比較"-0.123"

"-"被忽略,因爲它是常見的,然後把它歸結爲尋找的"0"最大和"4"這是當然是"4"。因此,"-45.02"是兩者中的最大值。