预期输出:report_exam_avg(100,95,80)=='您的平均分数:91.7'
def report_exam_avg(a, b, c):
assert is_number(a) and is_number(b) and is_number(c)
a = float(a)
b = float(b)
c = float(c)
mean = (a + b + c) / 3.0
mean = round(mean,1)
x = 'Your average score: ', mean
return x
实际输出:('你的平均分:',91.7)
注意:无法解压缩下面的元组,因为我需要返回未打印的句子
avg, score = report_exam_avg(100, 95, 80)
print(avg, score)
答案 0 :(得分:1)
在这种情况下,您将x作为元组返回。所以这就是为什么当你只是打印x时你会得到一个元组作为输出。您应该使用Function中的print语句或修改函数,如下所示:
def report_exam_avg(a, b, c):
assert is_number(a) and is_number(b) and is_number(c)
a = float(a)
b = float(b)
c = float(c)
mean = (a + b + c) / 3.0
mean = round(mean,1)
x = mean
return x
所以你对函数的调用将是:
print ("Your Avg. Score:", report_exam_avg(100, 95, 80))
答案 1 :(得分:1)
我建议将逗号的使用更改为加号。这会改变您设置变量x:
的位置x = 'Your average score: ' + str(mean)
这将正确处理字符串连接,而逗号将生成一个元组。
此外,如果你使用python 3.6,你可以使用fstrings,一个非常方便的字符串插值工具。这会将行更改为如下所示:
x = f'Your average score: {mean}'
然后您可以以字符串形式返回x。
答案 2 :(得分:0)
Python支持在函数中返回多个值,只需用,
分隔它们。在你的情况下,Python认为你这样做,因此返回一个元组。
要返回字符串,只需使用+
:
x = 'Your average score: ' + str(mean)
return x
或者,使用字符串格式
x = 'Your average score: {}'.format(mean)
return x