从列表输入打印最小和最大功能

时间:2014-11-03 23:04:55

标签: python function append max min

每次运行代码时,我都会得到“TypeError:'int'对象不可迭代”。

所以我的问题是:如何打印/使用最后的最小和最大功能?所以如果有人让我们说类型5,7,10和-1。如何让用户知道最高分为10分,最低分为5分? (然后我想从最高数到最低数组织它。)

def fillList():

    myList = []

    return myList

studentNumber = 0

myList = []

testScore = int(input ("Please enter a test score "))

while testScore > -1:

      # myList = fillList()

      myList.append (testScore)

      studentNumber += 1

      testScore = int(input ("Please enter a test score "))

print ("")   
print ("{:s}     {:<5d}".format("Number of students", studentNumber))
print ("")
print ("{:s}           ".format("Highest Score"))
print ("")
high = max(testScore)
print ("Lowest score")
print ("")
print ("Average score")
print ("")
print ("Scores, from highest to lowest")
print ("")

2 个答案:

答案 0 :(得分:1)

您的问题是testScore是一个整数。还有什么呢?每次通过列表,您将其重新分配给下一个整数。

如果您想将它们附加到列表中,您必须实际执行此操作:

testScores = []
while testScore > -1:
    testScores.append(testScore)
    # rest of your code

现在很容易:

high = max(testScores)

事实上, 在您编辑的代码版本中执行此操作:myList中包含所有testScore值。所以,只需使用它:

high = max(myList)

但实际上,如果你仔细考虑一下,随着时间的推移,保持“最大运行”同样容易:

high = testScore
while testScore > -1:
    if testScore > high:
        high = testScore
    # rest of your code

在用户从未输入任何测试分数的情况下,您将获得不同的行为(第一个将提出TypeError关于要求空列表的最大值,第二个将给出-1),但是一旦你决定了你真正想要发生的事情,其中​​任何一个都很容易改变。

答案 1 :(得分:0)

如果你的所有分数都在数组中。

print("The max was: ",max(array))
print("The min was: ",min(array))