PTA PYthon 7-5 计算绩点

学分绩点计算办法:
1、按成绩折算课程绩点:
90分 - 100分 折合4.0 - 5.0绩点,即90分折合4.0,91分折合4.1,依次类推
80分 - 89分 折合3.0 - 3.9绩点,即80分折合3.0,81分折合3.1,依次类推
70分 - 79分 折合2.0 - 2.9绩点,即70分折合2.0,71分折合2.1,依次类推
60分 - 69分 折合1.0 - 1.9绩点,即60分折合1.0,61分折合1.1,依次类推
不足60分的绩点为0

2、计算公式:
课程学分绩点 = 课程绩点 × 课程学分
平均学分绩点 = 课程学分绩点总和 ÷ 课程学分总和

输入学生各门课程的成绩和学分,编程实现学分绩点计算,输出每门课程的绩点,学分和课程学分绩点,并输出平均学分绩点

输入格式:

每一行输入课程的成绩和学分,以#结束

输出格式:

每一行输出课程绩点,学分,课程学分绩点(保留两位小数),每一项占8个字符的宽度
最后一行输出平均学分绩点(保留两位小数)

输入样例:

在这里给出一组输入。例如:

95 2
87 3
83 2
78 3
66 4
56 2
93 1
#

输出样例:

在这里给出相应的输出。例如:

课程绩点   学分   课程学分绩点
4.5      2        9.00    
3.7      3        11.10   
3.3      2        6.60    
2.8      3        8.40    
1.6      4        6.40    
0        2        0.00    
4.3      1        4.30    
平均学分绩点 = 2.69

答案:

# 定义一个空列表用于存储课程成绩和学分
courses = []

# 输入课程成绩和学分
while True:
    input_data = input().strip()
    if input_data == "#":
        break

    # 将输入的数据分割成成绩和学分
    score, credit = map(int, input_data.split())
    courses.append((score, credit))


# 定义一个函数用于根据成绩计算课程绩点
def calculate_gpa(score):
    if 90 <= score <= 100:
        return 4.0 + (score - 90) / 10
    elif 80 <= score < 90:
        return 3.0 + (score - 80) / 10
    elif 70 <= score < 80:
        return 2.0 + (score - 70) / 10
    elif 60 <= score < 70:
        return 1.0 + (score - 60) / 10
    else:
        return 0


# 计算每门课程的绩点、学分和课程学分绩点
course_gpas = []
total_credit_points = 0
total_credits = 0

for score, credit in courses:
    gpa = calculate_gpa(score)
    credit_points = gpa * credit
    total_credit_points += credit_points
    total_credits += credit
    course_gpas.append((gpa, credit, credit_points))

# 输出每门课程的绩点、学分和课程学分绩点
print("{:<7}{:<5}{:<5}".format("课程绩点", "学分", "课程学分绩点"))
for gpa, credit, credit_points in course_gpas:
    if gpa == 0:
        print("{:<9}{:<9}{:<8.2f}".format(gpa, credit, credit_points))
    else:
        print("{:<9.1f}{:<9}{:<8.2f}".format(gpa, credit, credit_points))

# 计算平均学分绩点
average_gpa = total_credit_points / total_credits

# 输出平均学分绩点
print("平均学分绩点 =", "{:.2f}".format(average_gpa), end='')

 

你可能感兴趣的:(python,算法)