一、题目描述

随机生成一批学生的学号(6位整数)和成绩[0,100],完成以下需求:

  • 按成绩升序排序;
  • 统计各区间[0,60),[60,70),[70,80),[80,90),[90,100]的人数;
  • 列出各区间的名单(按学号降序)。
  • 参考结果如下页:

名单和成绩已生成完毕。
按成绩排序:
910861   1
612946   26
726686   32
520680   33
929453   38
507597   47
798982   60
136656   67
153103   84
425355   85
各个区间的人数:
0-60: 6 人
60-70: 2 人
70-80: 0 人
80-90: 2 人
90-100: 0 人
各个区间的名单:
0-60: 507597 726686 520680 929453 612946 910861 
60-70: 798982 136656 
80-90: 425355 153103

二、题目分析

  1. 首先要随机生成学号和成绩,第一想法当然是random库,生成一个六位学号用random.randint(100000,999999),生成成绩用random.randint(0,100)。这是生成一个学生的,生成多个的话用for循环即可。
  2. 为了最后能统计出来学号和成绩,这里要用字典将随机生成的学号和他对应的成绩匹配上。字典就是最好的方法,以学号作为键,以成绩作为值。这样就能起到一一对应的功能,方面之后检索和统计。
  3. 再生成随机成绩后,每生成一个成绩就进行一次判断,把他放到对应的列表里面,之后用len()就可以多少人了,用"".join()+" "就可以把同一个列表里的学号打印处理啦!
  4. 升序排列用字典按值排序,dic_name_score_sort = sorted(dic_name_score.items(), key=lambda x: x[1])。
  5. 打印区间名单的时候,要加一个判断,当对应列表中没有元素,即len(list) != 0时,打印相关信息,等于0时,就不打印了。

三、代码

直接将代码粘在在下面:

import random
dic_name_score = {}
zero_six = []
six_seven = []
seven_eight =[]
eight_nine = []
nine_full = []
zero_six_str = ''
six_seven_str = ''
seven_eight_str = ''
eight_nine_str = ''
nine_full_str = ""
for i in range(10):student_num = random.randint(100000,999999)student_score = random.randint(0,100)dic_name_score[student_num] = student_scoreif student_score <60:zero_six.append(student_num)elif 60<= student_score <70:six_seven.append(student_num)elif 70 <= student_score < 80:seven_eight.append(student_num)elif 80<= student_score < 90:eight_nine.append(student_num)else:nine_full.append(student_num)
dic_name_score_sort = sorted(dic_name_score.items(), key=lambda x: x[1])
print("名单和成绩已生成完毕。")
print("按成绩排序:")
for i in dic_name_score_sort:print(i[0]," ",i[1])
print("各个区间的人数:")
print("0-60:",len(zero_six),"人")
print("60-70:",len(six_seven),"人")
print("70-80:",len(seven_eight),"人")
print("80-90:",len(eight_nine),"人")
print("90-100:",len(nine_full),"人")
print("各个区间的名单:")
if len(zero_six) != 0:for i in range(0,len(zero_six)):zero_six_str += str(zero_six[i])+" "print("0-60:",zero_six_str)
if len(six_seven) != 0:for i in range(0,len(six_seven)):six_seven_str += str(six_seven[i])+" "print("60-70:",six_seven_str)
if len(seven_eight) != 0:for i in range(0,len(seven_eight)):seven_eight_str += str(seven_eight[i])+" "print("70-80:",seven_eight_str)
if len(eight_nine) != 0:for i in range(0,len(eight_nine)):eight_nine_str += str(eight_nine[i])+" "print("80-90:",eight_nine_str)
if len(nine_full) != 0:for i in range(0,len(nine_full)):nine_full_str += str(nine_full[i])+" "print("90-100:",nine_full_str)

四、总结

这道题不难,总体思路比较清晰,重点在于字典的创建,排序。这题有以下知识点:

  • 产生随机数。
  • 字典创建与排序
  • 列表相关处理与统计
  • 代码逻辑及细节处理

随机生成学号和成绩并排序相关推荐

  1. 随机生成100万个数,排序后保存在文件中

    随机生成100万个数,存储在文件out1.txt中,使用内部排序完成,并重新储存在文件out2.txt中. (一)使用STL中的qsort函数进行操作: #include "stdio.h& ...

  2. 随机生成从大到小排序python_随机快速排序(使用Python描述)

    title 代码复制自随机快速排序的实现-夜雨最萌.和快速排序一样呀

  3. 按成绩统计各层次学生(附随机生成学生姓名和成绩),现已解决

    题目:班级里有100名学生,按照90及以上,80(含)-90,60(含)-80,60以下划分成"尖子生"."优秀生"."合格生"." ...

  4. C语言随机生成成绩排序,如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法、冒泡排序法、快速排序法进行排序...

    已结贴√ 问题点数:20 回复次数:2 如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法.冒泡排序法.快速排序法进行排序 #include #include #include ...

  5. python列表输出学生姓名学号链表_c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)...

    展开全部 代码如下: /*用c语言链表编写一个学生信息系统程序,62616964757a686964616fe4b893e5b19e31333365656636要求输出学生的学号,姓名,性别, 学号, ...

  6. 输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出java,c++实现

    题目: /*    输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出 */ 代码部分: C++实现 #include<iostream> using names ...

  7. c语言猜四位数游戏猜10次,C语言猜数字游戏--随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B...

    1.看程序运行截图吧!! 由于博主本人较笨,就不动画演示了,如果动画的话可能将是一个漫长的过程! 猜数字游戏.png 2.游戏题目 随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字 ...

  8. 随机生成指定个数学生的语文数学外语成绩并求平均值

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h> #include<stdlib.h> #include<string.h ...

  9. 大乐透号码随机生成与排序

    前面两篇介绍了两个非常简单的排序算法,本篇介绍排序算法的一个简单应用--对大乐透随机号码进行排序. 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局.每 ...

最新文章

  1. 阿里Java开发规约(2)
  2. Android之UI控件
  3. MQTT protocol level的处理
  4. CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库
  5. 文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型
  6. python类定义变量_python类变量与__init__声明变量的区别
  7. PyInstaller编译linux,linux下运行pyinstaller故障解决
  8. C++中智能指针-atuo_ptr、unique_ptr
  9. 《符文冲突》unity塔防类游戏试做,经验源码分享-2
  10. 全国哀悼日 一段css让全站变灰
  11. IT项目管理学习笔记(一)——第8-11章
  12. Leaving fence domain… found dlm lockspace /sys/kernel/dlm/rgmanager
  13. 天猫30个店铺签到领喵币代码 亲测可用
  14. Keep 移动健身专家
  15. wps的高亮怎么用_WPS表格高亮显示重复项功能的使用及其不足介绍与改进
  16. Cartographer ROS 整合(翻译) 2019.4.2更新
  17. 美柚社区精选:贴心宝妈的八大育儿经验
  18. 安徽事业单位考试计算机基本知识,2017安徽事业单位考试备考资料:计算机知识(文字处理软件World)...
  19. 计算机音乐凉凉6,凉凉(伴奏) MIDI File Download :: MidiShow
  20. 龙营华夏户外拓展项目----攀岩登山

热门文章

  1. 博文第二天,一切刚刚开始
  2. 吴恩达机器学习第二次作业——逻辑回归
  3. 洛谷3258 松鼠的新家
  4. vs2019配置C#
  5. 限制input 输入框只能输入纯数字/数字/中文/英文
  6. hive--union all后无数据/少数据
  7. 《北大青鸟 基于.NET的WEB程序设计 视频教程》32集全部
  8. 1.小象笔记--汇率换算
  9. dnf剑魂buff等级上限_DNF男鬼剑三觉,剑魂重回“鬼剑一哥”地位,再现“一肩成神”风采...
  10. lol无限火力服务器瘫痪,LOL无限火力:玩家找到秒进“BUG”,现在还未修复赶紧去...