计算接受字符串的平均成绩

Posted

技术标签:

【中文标题】计算接受字符串的平均成绩【英文标题】:calculate average grade which accept string 【发布时间】:2021-12-16 02:36:32 【问题描述】:

在python中如何获取平均值,它接受作为字符串输入参数,并将字符串中四个分数的平均值作为浮点数返回。

预期输出:

input output
0, 50.4, 80.3, 95.9 = 56.5
99.9, 91.3, 99.2, 98.0 = 97.1

我现在的输出是

input output
0, 50.4, 80.3, 95.9 = 0
99.9, 91.3, 99.2, 98.0 = 99.9

请帮我得到预期的输出

grade1 = 0,50.4,80.3,95.9 
grade2 = 99.9,91.3,99.2,98.0 
gradeArr = [grade1, grade2] 

def score_average (i):
    n = len (i)
    total = 0
    for j in i:
        total = total + j
        average = total 
    return float (average)

print("input output")
for i in gradeArr:
    average = score_averages(i)
    length= len(str(i))
    print(str(i)[1:length -1] + " = " + str(average)) 

【问题讨论】:

在您的score_average 函数中,执行:return float(average)/n。现在您将获得预期的输出。 @Tharsalys 没用。不过谢谢 它给了我56.65 for grade197.1 for grade2。请检查是否是您的其他问题。 【参考方案1】:

输出是099.9,因为你在score_average函数中返回列表中的第一个数字,因为return语句缩进到for循环中,所以只有第一个数字被添加到总计,然后返回。此外,如果您正确缩进,return 语句只是返回列表的总和,因此您需要返回这个总和除以n 以获得平均值。代码应如下所示:

grade1 = 0,50.4,80.3,95.9
grade2 = 99.9,91.3,99.2,98.0 
gradeArr = [grade1, grade2] 

def score_average (i):
    n = len (i)
    total = 0
    for j in i:
        total = total + j
    average = total / n  # Divide the total by n
    return average 

print("input output")
for i in gradeArr:
    average = score_average(i)
    length= len(str(i))
    print(str(i)[1:length -1] + " = " + str(average))

【讨论】:

以上是关于计算接受字符串的平均成绩的主要内容,如果未能解决你的问题,请参考以下文章

结构平均分和最高分

【C语言】计算10个学生的平均成绩?

一个班六个人,学号语文数学英语,接收成绩(不接受学号),输出学号成绩,总分平均分,按总分排序(原生JS)

在excel中计算平均年龄

如何从包含数字和字母的字符串中计算平均值?

如何用C语言编程计算学生的平均成绩