python 编程题 1、成绩统计 题目描述 请帮老师编写一个成绩统计程序: (1)程序
时间: 2023-05-09 19:04:25 浏览: 240
题目描述:请根据输入的成绩,在控制台输出成绩单及相关统计信息。
实现思路:首先,根据输入的成绩列表计算出各项统计信息,如总分、平均分、最高分、最低分、及格率等。然后,按照一定规则将成绩列表输出成绩单。
程序运行原理:当程序开始运行时,首先要求用户输入所有学生的成绩。然后,程序计算并输出各项统计信息。接着,程序判断并输出每个学生的等级,并输出成绩单。
实现细节:
1、输入成绩
此题目的输入为一个数列,可以通过input()函数进行,根据字符串分隔符将数列转化为列表。
2、计算统计信息
(1)计算总分及平均分:在遍历数列时,用一个累加器保存总分,遍历完毕后,总分除以人数即为平均分。
(2)计算最高分及最低分:可以通过自带的max()和min()函数实现。
(3)计算及格率:在遍历数列时,用一个计数器保存及格人数,遍历完毕后,及格人数除以人数即为及格率。
3、判断等级
本题根据学生的成绩输出等级,如A、B、C、D、E等。可以通过if-elif-else语句实现。
4、输出成绩单
按照以下规则输出成绩单:
(1)首先,输出单行的“成绩单”字样。
(2)然后,输出下列表格的表头,其中姓名左对齐,其他项右对齐。
姓名 成绩 等级
-------------------------
...
(3)最后,按照表格样式输出每个学生的名字、成绩以及对应等级。
5、完整代码
score = input()
score_list = score.split(',') # 根据分隔符将字符串转化为列表
num = len(score_list) # 获取人数
sum_score = 0 # 计算总分及平均分
for i in score_list:
sum_score += int(i)
avg_score = sum_score / num
max_score = max(score_list) # 计算最高分
min_score = min(score_list) # 计算最低分
pass_num = len([i for i in score_list if int(i) >= 60]) # 计算及格率
# 计算等级并输出成绩单
print("成绩单")
print("%-10s%-10s%-10s" % ("姓名", "成绩", "等级")) # 表格左对齐,其他项右对齐
print("-------------------------")
for i in score_list:
level = ""
if int(i) >= 90:
level = "A"
elif int(i) >= 80:
level = "B"
elif int(i) >= 70:
level = "C"
elif int(i) >= 60:
level = "D"
else:
level = "E"
print("%-10s%-10s%-10s" % (score_list.index(i)+1, int(i), level)) # %s表示字符串,%d表示整数
print("-------------------------")
print("平均分:%s" % avg_score)
print("最高分:%s" % max_score)
print("最低分:%s" % min_score)
print("及格率:%s" % (pass_num/num))
阅读全文