定义一个函数以查找列表中的最大数字

时间:2014-09-22 10:28:31

标签: python

def maximum(l,n):
    maximum=l[0]
    for i in range(1,n+1):
        if (l[i]>maximum):
              max=l[i]

返回最大值

L = []

#main program

n=input("Enter size of list")
for i in range(0,n):
    num=input("Enter elements")
    l.append(num)
    lgt=maximum(l,n)
    print 'largest number is',lgt

这是代码人....你能告诉我哪里错了吗?

3 个答案:

答案 0 :(得分:1)

试试这个。 lgt=max(l)print 'largest number is',lgt应该在for循环之外。

n=input("Enter size of list")
my_list=[]
for i in range(0,n):
    num=input("Enter elements")
    l.append(num)
lgt=max(my_list)
print 'largest number is',lgt

现在不使用max()我认为您可以尝试以下代码。

n=input("Enter size of list")
my_list=[]
for i in range(0,n):
    num=input("Enter elements")
    my_list.append(num)
my_list.sort()
print my_list
print 'largest number is',my_list[-1]

现在如果您想使用maximum功能,请尝试以下代码。

def maximum(x):
    x.sort()
    return x[-1]

n=input("Enter size of list")
my_list=[]
for i in range(0,n):
    num=input("Enter elements")
    my_list.append(num)
print "The largest number is",maximum(my_list)

答案 1 :(得分:0)

在这一行

lgt=maximum(l,n)

您通过了n,它必须是列表l的长度。但是,在迭代期间,列表的长度小于最终n。因此,您将获得IndexError

您不需要自己实现maximum功能,因为python已内置max

所以,请这样做:

n=input("Enter size of list")
for i in range(0,n):
    num=input("Enter elements")
    l.append(num)
    lgt=max(l)
    print 'largest number is',lgt

答案 2 :(得分:0)

在Python中,您不需要知道要循环的列表的长度:

def maximum(some_list):
   maximum = 0
   for i in some_list:
      if i > maximum:
         maximum = i
   return maximum

此外,不要使用max作为变量的名称,因为这是Python中内置函数的名称。 l也是变量的错误名称,因为它在某些字体中看起来像1

您也不需要提前询问列表的长度:

numbers = []
n = 0

while n != 'N':
   n = input('Please enter a number, or N to stop: ')
   if n != 'N':
       numbers.append(n)

print('You entered {} numbers and the maximum is {}'.format(len(numbers), maximum(numbers)))