输入学生的学号,姓名,成绩统计每个班级的人数和平均成绩请输入学号,姓名和成绩(以空格分隔,输入完成后以-1结束)
# 定义一个字典,用于统计每个班级的人数和Python的总成绩
class_info = {'7': [0, 0], '8': [0, 0], '9': [0, 0]}
while True:
# 输入学生信息
line = input('请输入学号、姓名和Python成绩(以空格分隔,输入完成后以-1结束):')
if line == '-1':
break
stu_info = line.split() # 将输入的字符串按空格分割成学生信息的列表
class_num = stu_info[0][0] # 获取班级号,学号的第一个字符就是班级号
score = int(stu_info[2]) # 将成绩字符串转为整型
# 统计班级人数和Python总成绩
class_info[class_num][0] += 1 # 人数加1
class_info[class_num][1] += score # 总成绩加上当前学生的Python成绩
# 遍历字典,计算每个班级的平均成绩并输出
for class_num, info in class_info.items():
count, score = info # 获取班级人数和Python总成绩
if count == 0: # 如果班级人数为0,说明没有学生,不需要输出
continue
avg_score = score / count # 计算平均成绩
print(f'{class_num}班{count}人,平均成绩{avg_score:.0f}分')
ctrl = True
Grade = [] #定义空列表
while (ctrl):
Name = input("请输入学生姓名:")
Mathematics = input("请输入数学成绩:")
Computers = input("请输入计算机成绩")
Date = {'Name':Name,'Mathematics':Mathematics,'Computers':Computers}
Grade.append(Date)
inputMark = input("是否继续添加?(y/n):")
if inputMark.lower() == "y":
mark = True # 继续添加
else:
mark = False # 不继续添加
break #退出循环
format_title = "{:^6}{:^12}\t{:^8}\t{:^10}"
print(format_title.format("姓名","数学成绩","计算机成绩","总和"))
format_data = "{:^6}{:^12}\t{:^12}\t{:^14}"
for list in Grade:
Co = int(list.get('Computers'))
Ma = int(list.get('Mathematics'))
Sum = Co + Ma
print(format_data.format(list.get("Name"),list.get('Mathematics'),list.get('Computers'),Sum))