计算平均分并返回字符串

时间:2019-01-12 22:36:31

标签: python python-3.x

我是python的新手,正在尝试完成一个需要计算平均分数并返回字符串“您的平均分数为XX”的练习

def report_exam_avg(a, b, c):
    return (str("your score is"), round((a+b+c)/3,1))

report_exam_avg(2,5,9)

运行此命令时,不会返回任何内容,而且不确定在不使用print语句的情况下如何返回字符串。谢谢。

5 个答案:

答案 0 :(得分:0)

return "your score is " + str(round(a + b + c) / 3, 1))

最好的方法是使用%"string".format()这些格式选项之一。但是这种方式是最简单,最直观的方式。您可以添加字符串,因此将数字转换为字符串并将其添加到“您的分数是”。

答案 1 :(得分:0)

您可以返回字符串并在需要时打印它。您应该使用字符串格式在字符串中放置数字:

def report_exam_avg(a, b, c):
    return "your score is %.1f" % (round((a+b+c)/3,1))

print(report_exam_avg(2,5,9)) # your score is 5

或者,使用字符串加法,但将数字转换为字符串后:

def report_exam_avg(a, b, c):
    return "your score is " + str(round((a+b+c)/3,1))

print(report_exam_avg(2,5,9)) # your score is 5

答案 2 :(得分:0)

您必须print返回值。另外,您可能希望对输出使用字符串格式(它也可以为您舍入)。

def report_exam_avg(a, b, c):
    return "your score is {:.0f}".format((a+b+c) / 3)

print(report_exam_avg(2,5,9))

your score is 5

答案 3 :(得分:0)

您必须打印返回的值,或在函数中打印它,这将更容易在函数中打印它。

更好的解决方案:

def report_exam_avg(a, b, c):
    print("Your score is", round((a+b+c)/3,1))

report_exam_avg(2,5,9)

或者这也可以:

def report_exam_avg(a, b, c):
  return("Your score is " + str(round((a+b+c)/3,1)))

print(report_exam_avg(2,5,9))

答案 4 :(得分:-1)

最好的解决方案是将计算和表示分开。让您的函数计算并返回平均值。让呼叫者打印它。

def report_exam_avg(a, b, c):
    return (a + b + c) / 3

score = report_exam_avg(2, 5, 9)
print("Your average score is {:.0f}".format(score))

请注意,format也在进行四舍五入,因此不需要调用round()