2017-03-02 8 views
2

以下のように負の数を入力している間、私は最大値を抽出したいと思います。その値は-0.123であると予想されますが、実際の値(Python 3.6.0シェルの場合)は-45.02です。ここに私のコードは次のとおりです。pythonの最大負の値

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"は、一度に1文字を比較するため、たとえば"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"は2つのうち最大値です。