python最大负值

时间:2017-03-02 12:53:59

标签: python python-3.x

输入如下的负数时,我想提取最大值。我希望该值为-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

你能帮我弄清楚结果吗?

1 个答案:

答案 0 :(得分: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))

在您的情况下,将"-0.123""-45.02"进行比较:

"-"被忽略,因为它很常见,然后归结为找到"0""4"的最大值,当然"4"。因此,"-45.02"是两者中的最大值。