输入如下的负数时,我想提取最大值。我希望该值为-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
你能帮我弄清楚结果吗?
答案 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"
是两者中的最大值。