Python程序,用于计算3次考试的平均分数和最终成绩

2024-04-26 13:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个Python3程序来计算3次考试的平均分数和最终成绩(a、B、C、D、F)。每次“你的分数”输出都是F。不管你的考试分数是多少,分数输出总是F。怎么了

firstexam=0
secondexam=0
thirdexam=0
grade=0
finalgradeABC=0


firstexam = int(input('Enter your first exam: '))
secondexam = int(input('Enter your second exam: '))
thirdexam = int(input('Enter your third exam: '))


allthree =(firstexam + secondexam + thirdexam)


def average(allthree):
    return allthree/3


def yourgrade(avg):
    if 90 <= avg <= 100:
        return 'A'
    elif 80 <= avg <= 89:
        return 'B'
    elif 70 <= avg <= 79:
        return 'C'
    elif 60 <= grade <= 69:
        return 'D'
    else:
        return 'F'


grades = allthree
finalgradeABC = yourgrade(grades)
avg = average(allthree)


print("Average grade is : " + str(avg))
print("You grade : " + str(finalgradeABC))

Tags: inputyourreturn分数intavggradeenter
3条回答

将最后几行更改为以下内容-您设置了一个很好的平均值函数,但在将值传递给yourgrade()函数之前忘记了使用它

avg = average(allthree)
grades = avg
finalgradeABC = yourgrade(grades)

你的说法不正确。如果你输入33分的三分,你会得到“A”

功能上的问题是您未能获得平均值:

allthree =(firstexam + secondexam + thirdexam)

尝试正确的公式:

allthree =(firstexam + secondexam + thirdexam) / 3

结构上的问题是你没有正确地解释所有的情况:你的评分等级有差距(即89.5是F),你的最后一句假设除了这些范围之外的任何东西都是不及格的。相反,请尝试:

elif: avg < 60:
    return `F`
else:
    return "bad input or logic error"

我假设你想要的是字母等级的平均等级。如果是这种情况,那么在计算平均值之后,应该调用yourgrade()on avg,如下所示:

grades = allthree
avg = average(allthree)
finalgradeABC = yourgrade(avg)

相关问题 更多 >