在python中查找max / min的数字比较

时间:2018-01-14 04:10:23

标签: python python-3.x

我是python的初学者。我写了一个简单的程序来找到最多的3个数字。当我给出具有相同位数的输入数字时,我得到了正确的答案(例如50 80 20)。但是,当我输入(50 130 20)时,它不起作用。

我做错了什么?

num1=input("Enter 3 numbers\n")
num2=input()
num3=input()
if(num1 > num2):
    if(num1 > num3):
        print("The greatest number is "+ str(num1))
    else:
        print("the greatest number is "+ str(num3))
else:
    if(num2 > num3):
        print("The greatest number is " + str(num2))
    else:
        print("The greatest number is " + str(num3))

3 个答案:

答案 0 :(得分:1)

你是动态打字的另一个受害者。

当您将数据读入num变量时,变量将被视为字符串。

当Python使用<>运算符比较两个字符串时,它按字典顺序排列 - 这意味着按字母顺序排列。以下是一些例子。

'apple' < 'orange' //true
'apple' < 'adam' //false
'6' < '7' //true as expected
'80' < '700' //returns false, as 8 > 7 lexiographically

因此,您希望使用int()转换输入,因此<比较可以按预期工作。

<强>代码

num1=int("Enter 3 numbers\n")
num2=int(input())
num3=int(input())
if(num1 > num2):
    if(num1 > num3):
        print("The greatest number is "+ str(num1))
    else:
        print("the greatest number is "+ str(num3))
else:
    if(num2 > num3):
        print("The greatest number is " + str(num2))
    else:
        print("The greatest number is " + str(num3))

答案 1 :(得分:0)

您可以使用max

找到任意数量的数字的最大值
print "The greatest number is " + max(int(num1), int(num2), int(num3))

答案 2 :(得分:0)

如果你不想要TimTom(没有max()),这是另一种方式:

date_inds = ...some subset of dates with DATE dimension...
name_inds = ...some subset of names with DN_NAME dimension...

ds['MACROSS'][date_inds, name_inds] = 1