【问题标题】: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。请检查是否是您的其他问题。

标签: python-3.x function parameters average


【解决方案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))

【讨论】:

    猜你喜欢
    • 2019-08-25
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    相关资源
    最近更新 更多