在循环内返回 - 我如何确保它在循环之外?

时间:2013-12-05 05:32:23

标签: python

嘿,有成员,希望你有一个美好的一天,我正在为我的班级工作,我有一个问题。我必须在一个函数中计算平均值,然后在另一个函数中调用它。从我对教科书的理解(老师不知道如何教),添加“返回平均值”应该允许我在另一个函数中使用该输出吗?好吧,当我运行我的代码时,它只能在1次输入后立即返回平均值。

我假设因为“返回平均值”在循环内“用于测试范围”对吗?如果是这样,我不确定如何在该循环之外实现它(在同一方法中),我尝试了不同的方法但没有成功。

我想对这个问题有所了解。我很感激我收到的任何帮助。谢谢!

#variables for amount of scores 
num_of_scores = 5

def calc_average():
    total = 0.0
    for test in range(num_of_scores):
        print('Please enter the score of test', str(test +1), end='')
        score = float(input(':'))
        total += score
        average = total / num_of_scores
        return average
def main():
    average = calc_average()
    print('Average of test scores is', average)

#def determine_grade():
#    if average < 60

main()

1 个答案:

答案 0 :(得分:1)

解决方案:

问题在于你的indention,你正在循环num_of_scores并做总和,方法的平均值计算和返回值需要是方法的一部分而不是for的一部分{1}}循环。

#variables for amount of scores 
    num_of_scores = 5

    def calc_average():
        total = 0.0
        for test in range(num_of_scores):
            print('Please enter the score of test', str(test +1), end='')
            score = float(input(':'))
            total += score
        average = total / num_of_scores
        return average

    def main():
        average = calc_average()
        print('Average of test scores is', average)

    #def determine_grade():
    #    if average < 60

    main()

<强>输出:

('Please enter the score of test', '1') :5
('Please enter the score of test', '2') :6
('Please enter the score of test', '3') :7
('Please enter the score of test', '4') :8
('Please enter the score of test', '5') :9
('Average of test scores is', 7.0)