Python编程练习与解答 练习68:计算平均绩点

       练习52包括一个表,表中显示了某一特定学术机构从字母成绩到绩点的转换。本练习将计算用户输入的任意数量字母等级的平均绩点。用户输入一个空白行,表明所有分数都已提供。例如,如果用户输入A,然后是C+,然后是B,然后是空行,那么程序应该报告的绩点平均值是3.1。
       完成这个练习时,会发现52题的答案很有帮助,程序不需要做任何错误检查,它可以假设用户输入的每个值都是有效的字母等级或空行。

练习52:

在一所特定的大学,字母成绩采用下方式映射到绩点

字母绩点
A+4
A4
A_3.7
B+3.3
B3
B_2.7
C+2.3
C2
C_1.7
D+1.3
D1
F0

#定义总分和科目数
con=0
num=0
#第一次输入成绩
letter = (input("请输入字母成绩"))
# 注意“==”和“=”的区别,“==”用来比较变量值是否相等,“=”用来赋值
#开始输入成绩,使用while循环
while letter!="":
    # 定义字母绩点
    A_plus = 4.0
    A = 4.0
    A_ = 3.7
    B_plus = 3.3
    B = 3.0
    B_ = 2.7
    C_plus = 2.3
    C = 2.0
    C_ = 1.7
    D_plus = 1.3
    D = 1.0
    F = 0
    # 注意“==”和“=”的区别,“==”用来比较变量值是否相等,“=”用来赋值
    if letter == "A_plus" or letter == "A": #注意输入的形式是字符串
        GAP = A                             #此时A等于4.0,已对其进行赋值
    elif letter == "B_plus":
        GAP = B_plus
    elif letter == "B":
        GAP = B
    elif letter == "B_":
        GAP = B_
    elif letter == "C_plus":
        GAP = C_plus
    elif letter == "C":
        GAP = C
    elif letter == "C_":
        GAP = C_
    elif letter == "D_plus":
        GAP = D_plus
    elif letter == "D":
        GAP = D
    elif letter == "F":
        GAP = F
    #对总成绩及科目书定义
    num += 1
    con += GAP
    # 第一次循环结束,开始第二次循环
    #输入下一科成绩
    letter=(input("请输入字母成绩"))
#注意缩进,此时已经跳出循环
average=con/num
print("平均成绩为%.2f"%average)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设你有一个学生类(Student),其中包含属性:姓名、学号、专业、课程成绩和学分,那么可以通过实例化方法计算平均绩点。 以下是一个示例代码: ```python class Student: def __init__(self, name, id, major, scores, credits): self.name = name self.id = id self.major = major self.scores = scores self.credits = credits def calculate_gpa(self): total_credits = sum(self.credits) weighted_scores = sum([score * credit for score, credit in zip(self.scores, self.credits)]) gpa = weighted_scores / total_credits return round(gpa, 2) ``` 在上面的代码中,我们定义了一个学生类,其中包含了一些属性,如姓名、学号、专业、课程成绩和学分。我们还定义了一个实例化方法 `calculate_gpa()`,该方法计算并返回该学生的平均绩点。 具体来说,我们首先通过 `sum()` 函数计算出学生所修的总学分数,然后使用列表推导式计算每门课程的加权成绩(即成绩乘以学分),最后将加权成绩总和除以总学分数得到平均绩点。最后使用 `round()` 函数将平均绩点保留两位小数,然后返回结果。 使用示例: ```python # 创建一个学生对象 student = Student("张三", "20210001", "计算机科学与技术", [90, 80, 85], [3, 2, 4]) # 计算该学生的平均绩点 gpa = student.calculate_gpa() # 输出结果 print("学生姓名:", student.name) print("学号:", student.id) print("专业:", student.major) print("平均绩点:", gpa) ``` 输出结果: ``` 学生姓名: 张三 学号: 20210001 专业: 计算机科学与技术 平均绩点: 3.56 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值