我是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语句的情况下如何返回字符串。谢谢。
答案 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()
。