0

如何找到输入数字的最大值?这是我到目前为止所拥有的。它给了我一条错误消息:'"int" object is not iterable'

def greatest(num):
    for index in range(10):
        num=input('Enter the number of units sold')
    print max(num)
4

4 回答 4

2

您可以将它们全部放入一个列表中,然后max()在该列表上运行,或者(如果您不需要该列表用于其他任何事情)简单地保持您自己的最大值,例如:

def greatest(num):   # why num here??
    maxnum = -1
    for index in range(10):
        num = input ('Enter the number of units sold')
        if num > maxnum:
            maxnum = num
    print maxnum
于 2013-04-03T02:39:23.863 回答
1

您需要在列表或其他可迭代数据结构中累积数字:

def greatest():
    data = [input('Enter the number of units sold') for _ in range(10)]
    print max(data)
于 2013-04-03T02:39:44.827 回答
1

您需要将那些从用户那里获得的数字保存在数据结构中,然后在完成收集后找到最大值。现在,您只是num在每次迭代中覆盖 的值,这根本没有帮助,因为您无法检查以前的输入数字。这就是为什么你从 中得到一个错误max,期望有一些东西可以迭代。与你到目前为止所拥有的一样,这样的事情会奏效,

def greatest():
    l = []
    for index in range(10):
        l.append(input('Enter the number of units sold'))
    return max(l)

但这会更好:

def greatest():
    return max(input('Enter the number of units sold') for _ in xrange(10))
于 2013-04-03T02:41:23.647 回答
0

错误消息是因为max为您提供了一系列数字中的最大数字,而input返回一个 int。

你可能想要做的是:

def greatest(num):
    numbers = []
    for index in range(10):
        numbers.append(input('Enter the number of units sold'))
    print max(numbers)
于 2013-04-03T02:40:42.980 回答