0

我有这段代码,我正在尝试开始工作。我可以创建一组随机数,但我需要显示最大值。我试图不使用python内置的max命令,但是,如果我找不到解决方案,我会问一个例子。

import random
def randomNumbers(number):
    myList = []
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        myList.append(randomNumber)
        numbersToCreate = numbersToCreate -1
    return myList

我尝试输入的一段代码是这样的:

theList = []
theList.sort()
biggest = theList [-1:][0]
print (theList)

当我尝试用它运行它时,我收到一条错误消息,告诉我列表未定义。任何帮助,将不胜感激。

4

4 回答 4

1
theList = randomNumbers(30)
biggest = max(theList)
print (biggest)
于 2012-08-31T01:36:56.953 回答
1

这是一个解决方案。

def randomNumbers(number):
    theList = []        
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        theList.append(randomNumber)
        numbersToCreate -= 1
    return theList

outList = randomNumbers(100)
outList.sort()
print outlist[-1] # No reason to slice the list, which is what you were doing.
于 2012-08-31T01:42:10.280 回答
1

你真的应该使用 Python 的max()函数,至少为了可读性。

如果没有,您可以随时查看 Python 开发人员如何在 Python 中实现它,因为它是开源的。

于 2012-08-31T01:43:02.883 回答
1

首先,如果你想要 int 作为你的列表,你可以使用random.randint(min, max)代替int(random.random()*100). 其次,您需要调用您的函数并将返回列表传递给theList

def randomNumberList(n):
    theList = []
    for i in range(n):
        theList.append(random.randint(0,100))
    return theList

theRealList = randomNumberList(n)

然后您将能够使用实际列表。

theRealList.sort()
theBiggest = theRealList[-1]
于 2012-08-31T01:46:54.033 回答