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
这是代码人....你能告诉我哪里错了吗?
答案 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)))