Python:返回列表中没有max()的最高值的函数?

Python:返回列表中没有max()的最高值的函数?,python,python-2.7,Python,Python 2.7,我需要编写一个函数,将数字列表作为参数,并返回列表中最大的数字,而不使用max 我试过: def highestNumber(l): myMax = 0 if myMax < l: return myMax return l print highestNumber ([77,48,19,17,93,90]) …还有一些我不记得的事情。我只需要了解如何循环列表中的元素。您需要循环所有值以确定最大值;跟踪到目前为止的最大值,并在完成循环后返回: def highes

我需要编写一个函数,将数字列表作为参数,并返回列表中最大的数字,而不使用max

我试过:

def highestNumber(l):
  myMax = 0
  if myMax < l:
    return myMax

  return l


print highestNumber ([77,48,19,17,93,90])

…还有一些我不记得的事情。我只需要了解如何循环列表中的元素。

您需要循环所有值以确定最大值;跟踪到目前为止的最大值,并在完成循环后返回:

def highestNumber(l):
    myMax = float('-inf')
    for i in l:
        if i > myMax:
            myMax = i
    return myMax
这里,float'-inf'是一个保证比任何其他数字都低的数字,这使它成为一个很好的起点

for构造负责所有循环;你直接在l的元素上这样做,我被一个接一个地分配给序列中的每个元素

代码忘记循环,根据0测试整个列表,如果测试失败,则返回整个列表

def highestNumber(l):
    myMax = l[0]
    for num in l:
        if myMax < num:
            myMax = num
    return myMax


print highestNumber ([77,48,19,17,93,90])
或者你可以这样做

def highestNumber(l):
    return sorted(l)[-1]


函数在不使用预定义函数的情况下查找列表中的最大值

def max_len_list(temp):
    i=1
    for each in temp:
        while i < max_len:
            comp=each;
            if comp > temp[i]:
                i=i+1;
            elif temp[i] > comp:
                comp=temp[i];
                i=i+1
        return comp
list1 = [];
max_len=3;
try:
    while len(list1) < max_len :
        no = int(input("enter a number\n"));
        list1.append(no);
except:
    print "enter number not string"
max_no=max_len_list(list1);
print max_no

要求外部资源,如教程,在这里是特别离题的。@rio5029:btw,你到底是怎么想到这些代码的?我看不出有任何逻辑。我是说。。。Python读起来几乎像英语。。。如果你把你的代码大声读出来,你不觉得这完全是胡说八道吗?是的,那是我刚开始写的最初代码,我刚抽出来,然后开始修改它。我只是不记得所有不同的修改。在过去的几周里,我一直在努力自学Python,但它显然不起作用。我有几点建议。这是一个老生常谈的问题,如果你有答案的话,继续跟进肯定很有价值——谢谢。我建议您在答案中添加代码格式。表单上方有一个wysiwyg,或者在这种情况下,您可以使用markdown,我不同意@LessQuesar。新答案只有在添加了其他答案中没有提到的内容时才有用。低质量问题的新答案,已经有好几个答案了——这些都没有价值。
def highestNumber(l):
    l.sort()
    return l[-1]
def max_len_list(temp):
    i=1
    for each in temp:
        while i < max_len:
            comp=each;
            if comp > temp[i]:
                i=i+1;
            elif temp[i] > comp:
                comp=temp[i];
                i=i+1
        return comp
list1 = [];
max_len=3;
try:
    while len(list1) < max_len :
        no = int(input("enter a number\n"));
        list1.append(no);
except:
    print "enter number not string"
max_no=max_len_list(list1);
print max_no