首页 文章

在Python中计算列表内容的最小值,最大值和平均值

提问于
浏览
-3

因此,我正在处理的问题是“编写,调试和测试程序来计算和打印正测试分数列表的最小值,最大值和平均值 . 提示用户输入多少分数 . 预计每个分数将在每行输入一个 . 提供每个分数的提示 . “

所以这就是我现在所拥有的,但我仍然坚持寻找最小值,最大值和平均值 .

def scores():
    print('we are starting')
    count = int(input('Enter amount of scores: '))
    print('Each will be entered one per line')
    scoreList = []
    for i in range(1, count+1):
            scoreList.append(int(input('Enter score: ')))
            print(scoreList)
    print(scoreList)
    print('thank you the results are:')
    mysum = sum(count)
    # mysum needs to be a float
    average = 1.0*mysum / n
    print ('Total: ', str(count))
    print ('Average: ', str(average))
    print ('Minimum: ', str(min(count)))
    print ('Maximum: ', str(max(count))) 
scores()

我不确定是否更容易做一个elif类型的语句,因为我说我对此很新,我仍然只是想了解这段代码中发生了什么 .

接下来,我需要“扩展程序以按等级表生成分数 . 对于每个等级[A,B,C,D,F],程序计算等级中的等级数 . 程序打印一个表按排名计算,并提供每个级别的总成绩百分比 . “

排名如下:

A = 91 - 100   
B = 81 - 90   
C = 71 - 80   
D = 61 - 70    
F =  0 - 60

我会感谢一些帮助或一些意见 .

2 回答

  • 0

    你并不遥远,你的主要问题似乎是混淆你的变量,所以你在错误的时间引用了错误的东西 .

    例如,您不想查找 minmax count (这是一个整数值),而是要查找 minmaxscoreList (这是一个列表,因此可以使用 minmax 方法进行迭代) .

    sum 的问题相同 . 代码的更正位将是:

    mysum = sum(scoreList)
    # mysum needs to be a float
    average = 1.0*mysum / count
    print ('Total: ', str(mysum))
    print ('Average: ', str(average))
    print ('Minimum: ', str(min(scoreList)))
    print ('Maximum: ', str(max(scoreList)))
    

    至于使用等级图表,'s a separate question, and would be better served by posting as separate, along with some code to show what you'已经尝试过了 . 但是, elif 语句是一种有效的方法 .

  • 0

    这是我能想到的最蟒蛇的方式,当然数学模块有所有这些哈哈!

    def min(data):
        '''return min of itterable data
            '''
        minimum = data[0]
        for i in data:
            if i < minimum:
                minimum = i
        return minimum
    
    def max(data):
        '''return max of itterable data
            '''
        maximum = data[0]
        for i in data:
            if i > maximum:
                maximum = i
        return maximum
    
    def avg(data):
        '''
            return average of itterable data
        '''
        return sum(data)/len(data)
    
    data = [1,2,1,3,6,4,5]
    print (min(data), max(data), avg(data))
    

相关问题