如何使用其他函数的结果?

时间:2018-10-05 12:34:02

标签: python

我的代码从用户那里获得数字列表(等级),并根据用户给出的数字找到平均值。找到平均值后,我想将平均值转换为基于字母的成绩。例如,如果平均值为90,则返回“ A”,如果平均值为80,则返回“ B”。

问题是我无法使用calculated_average(x)函数的结果(平均值),而不能在assign_grade()上使用它。

有什么提示吗?

#Gets a list of numbers from user
def get_score():
    score_list = []
    keep_going = 'y'
    while keep_going == 'y':
        score = float(input('Enter a test score: '))
        while score < 0:
            print('Positive numbers only')
            score = float(input('Enter a test score: '))
        score_list.append(score)
        keep_going = input("More scores (y/n) ")
    return score_list

#Calculates the average
def calculated_average(x):
    return sum(x) / len(x)

def assign_grade():





def main():
    score = get_score()
    print(calculated_average(score))

main()

2 个答案:

答案 0 :(得分:2)

尝试执行类似以下代码的操作。 assign_grade功能在这里非常基础,但是您可以根据需要对其进行编辑:

def get_score():
    score_list = []
    keep_going = 'y'
    while keep_going == 'y':
        score = float(input('Enter a test score: '))
        while score < 0:
            print('Positive numbers only')
            score = float(input('Enter a test score: '))
        score_list.append(score)
        keep_going = input("More scores (y/n) ")
    return score_list

#Calculates the average
def calculated_average(x):
    return sum(x) / len(x)

def assign_grade(x):
    if x>80:
        return 'A'
    else:
        return 'B'

def main():
    score = get_score()
    avg = calculated_average(score)
    letter = assign_grade(avg)
    return (letter, avg) 

final = main()
print(final)

输出(带有输入85):

print(final)
('A', 85.0)

答案 1 :(得分:1)

您的代码似乎可以正常工作,只是您需要完成函数assign_grade(x)

def assign_grade(x):
    if x>=90:
        return("A")
    elif 90>x>=80:
        return("B")
    else:
        return("C")