【发布时间】:2020-12-30 12:29:14
【问题描述】:
好的,所以我正在尝试制作一个程序,用户必须在其中输入课程的字母等级以及课程学分。总共有三门课程。它将每门课程的所有学分相加(学分*课程学分),然后除以三门课程的总学分。
所以我在输入变量中输入了这个,结果一切正常:
Enter your course 1 letter grade: A
Enter your course 1 credit: 3
Grade point for course 1 is: 4.0
Enter your course 2 letter grade: B
Enter your course 2 credit: 2
Grade point for course 2 is: 3.0
Enter your course 3 letter grade: C
Enter your course 3 credit: 4
Grade point for course 3 is: 2.0
总 GPA 应该是 2.8888888888889,但我的程序打印出 18.88888888888889。有人可以告诉我我在这里做错了什么吗?
这是我的代码:
def getGradePoint(courseLetterGrade):
if (courseLetterGrade == "A"):
return 4.0;
elif (courseLetterGrade == "A-"):
return 3.67;
elif (courseLetterGrade == "B+"):
return 3.33;
elif (courseLetterGrade == "B"):
return 3.0;
elif (courseLetterGrade == "B-"):
return 2.67;
elif (courseLetterGrade == "C+"):
return 2.33;
elif (courseLetterGrade == "C"):
return 2.0;
elif (courseLetterGrade == "D"):
return 1.0;
else:
return 0.0;
# Main area of code - Code that allows the user to input the variables and then calls to the getGradePoint function
def run():
courseLetterGrade = str(input("Enter your course 1 letter grade: "))
courseCredit = float(input("Enter your course 1 credit: "))
print(f"Grade point for course 1 is {getGradePoint(courseLetterGrade)}.")
courseLetterGrade2 = str(input("Enter your course 2 letter grade: "))
courseCredit2 = float(input("Enter your course 2 credit: "))
print(f"Grade point for course 2 is {getGradePoint(courseLetterGrade2)}.")
courseLetterGrade3 = str(input("Enter your course 3 letter grade: "))
courseCredit3 = float(input("Enter your course 3 credit: "))
print(f"Grade point for course 3 is {getGradePoint(courseLetterGrade3)}.")
GPA = (getGradePoint(courseLetterGrade) * courseCredit) + (getGradePoint(courseLetterGrade2) * courseCredit2) + (getGradePoint(courseLetterGrade3) * courseCredit3) / (courseCredit + courseCredit2 + courseCredit3)
print(f"Your GPA is: {str(GPA)}")
if __name__ == "__main__":
run()
【问题讨论】: