20岁不会敲代码 2021-12-23 17:33 采纳率: 83.3%
浏览 93
已结题

怎么把最后的结果输出到可视化窗口

import xlrd

book = xlrd.open_workbook(r"C:\Users\XCP\PycharmProjects\pythonProject1\cheng_ji.xls") # 获取工作表格
sheet1 = book.sheets()[0] # 获取表格sheet
col0_value = sheet1.col_values(0, 1) # 获取学生姓名列表
col1_value = sheet1.col_values(1, 1) # 获取sheet第2列成绩列表
col_dict = zip(col0_value, col1_value) # 将姓名和成绩存为字典以便于遍历
avg_score = sum(col1_value) / len(col1_value) # 求取平均值
highest_score = max(col1_value) # 求取最高分数
lowest_score = min(col1_value) # 求取最低分数
print('成绩统计如下**')
print('平均成绩:', avg_score)
print('最高分:{}'.format(highest_score))
print('最低分:{}'.format(lowest_score))
for k, v in dict(col_dict).items():
if int(v) < 60:
print('不及格的学生:{0} 成绩:{1}'.format(k, v))

  • 写回答

2条回答 默认 最新

  • 橙子CK 2021-12-23 19:34
    关注
    
    import xlrd
    import matplotlib.pyplot as plt
    book = xlrd.open_workbook(r'C:\Users\Administrator\Desktop\cheng_ji.xlsx')  # 获取工作表格
    sheet1 = book.sheets()[0]  # 获取表格sheet
    col0_value = sheet1.col_values(0, 1)  # 获取学生姓名列表
    col1_value = sheet1.col_values(1, 1)  # 获取sheet第2列成绩列表
    col_dict = zip(col0_value, col1_value)  # 将姓名和成绩存为字典以便于遍历
    avg_score = sum(col1_value) / len(col1_value)  # 求取平均值
    highest_score = max(col1_value)  # 求取最高分数
    lowest_score = min(col1_value)  # 求取最低分数
    print('成绩统计如下**')
    print('平均成绩:', avg_score)
    print('最高分:{}'.format(highest_score))
    print('最低分:{}'.format(lowest_score))
    failed_student = {}
    for k, v in dict(col_dict).items():
        if int(v) < 60:
            failed_student[k] = v
            print('不及格的学生:{0} 成绩:{1}'.format(k, v))
    
    plt.rcParams['font.sans-serif'] = ['FangSong']
    list_item = ['平均成绩', '最高分', '最低分']
    score_list = [avg_score, highest_score, lowest_score]
    plt.subplot(1, 2, 1)
    plt.title('学生总成绩', fontsize=24)
    plt.ylabel('分数')
    plt.xlabel('分数类别')
    plt.bar(list_item, score_list, width=0.35, color='pink')
    plt.subplot(1, 2, 2)
    plt.title('不及格成绩', fontsize=24)
    plt.ylabel('分数')
    plt.xlabel('姓名')
    plt.bar(failed_student.keys(), failed_student.values(), width=0.25)
    plt.show()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月31日
  • 已采纳回答 12月23日
  • 修改了问题 12月23日
  • 修改了问题 12月23日
  • 展开全部

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵