2017-09-05 93 views
0

预期输出: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

'X = '你的平均得分:' + STR(平均)' – Julien

+0

X ='你的平均分数:%s',意思是;打印(平均分数) –

回答

1

在这种情况下,您返回x作为元组。所以这就是为什么当你简单地打印x时,你会得到一个元组作为输出。您应该使用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

我建议改变使用逗号来加。这会改变你设置变量x:

x = 'Your average score: ' + str(mean) 

这将妥善处理字符串连接,而逗号将产生一个元组。

此外,如果您使用python 3.6,您可以使用fstrings,一个非常方便的字符串插值工具。这将改变线看起来像这样:

x = f'Your average score: {mean}' 

然后,你可以返回字符串形式的x。

0

Python支持在函数中返回多个值,只需使用,分隔它们即可。在你的情况下,Python认为你是这样做的,因此返回一个元组。

返回一个字符串,只需CONCAT字符串+

x = 'Your average score: ' + str(mean) 
return x 

或者,使用字符串格式

x = 'Your average score: {}'.format(mean) 
return x