计算接受字符串的平均成绩
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 grade1
和97.1
for grade2
。请检查是否是您的其他问题。
【参考方案1】:
输出是0
和99.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))
【讨论】:
以上是关于计算接受字符串的平均成绩的主要内容,如果未能解决你的问题,请参考以下文章