随机生成学号和成绩并排序
一、题目描述
随机生成一批学生的学号(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
二、题目分析
- 首先要随机生成学号和成绩,第一想法当然是random库,生成一个六位学号用random.randint(100000,999999),生成成绩用random.randint(0,100)。这是生成一个学生的,生成多个的话用for循环即可。
- 为了最后能统计出来学号和成绩,这里要用字典将随机生成的学号和他对应的成绩匹配上。字典就是最好的方法,以学号作为键,以成绩作为值。这样就能起到一一对应的功能,方面之后检索和统计。
- 再生成随机成绩后,每生成一个成绩就进行一次判断,把他放到对应的列表里面,之后用len()就可以多少人了,用"".join()+" "就可以把同一个列表里的学号打印处理啦!
- 升序排列用字典按值排序,dic_name_score_sort = sorted(dic_name_score.items(), key=lambda x: x[1])。
- 打印区间名单的时候,要加一个判断,当对应列表中没有元素,即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)
四、总结
这道题不难,总体思路比较清晰,重点在于字典的创建,排序。这题有以下知识点:
- 产生随机数。
- 字典创建与排序
- 列表相关处理与统计
- 代码逻辑及细节处理
随机生成学号和成绩并排序相关推荐
- 随机生成100万个数,排序后保存在文件中
随机生成100万个数,存储在文件out1.txt中,使用内部排序完成,并重新储存在文件out2.txt中. (一)使用STL中的qsort函数进行操作: #include "stdio.h& ...
- 随机生成从大到小排序python_随机快速排序(使用Python描述)
title 代码复制自随机快速排序的实现-夜雨最萌.和快速排序一样呀
- 按成绩统计各层次学生(附随机生成学生姓名和成绩),现已解决
题目:班级里有100名学生,按照90及以上,80(含)-90,60(含)-80,60以下划分成"尖子生"."优秀生"."合格生"." ...
- C语言随机生成成绩排序,如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法、冒泡排序法、快速排序法进行排序...
已结贴√ 问题点数:20 回复次数:2 如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法.冒泡排序法.快速排序法进行排序 #include #include #include ...
- python列表输出学生姓名学号链表_c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)...
展开全部 代码如下: /*用c语言链表编写一个学生信息系统程序,62616964757a686964616fe4b893e5b19e31333365656636要求输出学生的学号,姓名,性别, 学号, ...
- 输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出java,c++实现
题目: /* 输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出 */ 代码部分: C++实现 #include<iostream> using names ...
- c语言猜四位数游戏猜10次,C语言猜数字游戏--随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B...
1.看程序运行截图吧!! 由于博主本人较笨,就不动画演示了,如果动画的话可能将是一个漫长的过程! 猜数字游戏.png 2.游戏题目 随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字 ...
- 随机生成指定个数学生的语文数学外语成绩并求平均值
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h> #include<stdlib.h> #include<string.h ...
- 大乐透号码随机生成与排序
前面两篇介绍了两个非常简单的排序算法,本篇介绍排序算法的一个简单应用--对大乐透随机号码进行排序. 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局.每 ...
最新文章
- 阿里Java开发规约(2)
- Android之UI控件
- MQTT protocol level的处理
- CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库
- 文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型
- python类定义变量_python类变量与__init__声明变量的区别
- PyInstaller编译linux,linux下运行pyinstaller故障解决
- C++中智能指针-atuo_ptr、unique_ptr
- 《符文冲突》unity塔防类游戏试做,经验源码分享-2
- 全国哀悼日 一段css让全站变灰
- IT项目管理学习笔记(一)——第8-11章
- Leaving fence domain… found dlm lockspace /sys/kernel/dlm/rgmanager
- 天猫30个店铺签到领喵币代码 亲测可用
- Keep 移动健身专家
- wps的高亮怎么用_WPS表格高亮显示重复项功能的使用及其不足介绍与改进
- Cartographer ROS 整合(翻译) 2019.4.2更新
- 美柚社区精选:贴心宝妈的八大育儿经验
- 安徽事业单位考试计算机基本知识,2017安徽事业单位考试备考资料:计算机知识(文字处理软件World)...
- 计算机音乐凉凉6,凉凉(伴奏) MIDI File Download :: MidiShow
- 龙营华夏户外拓展项目----攀岩登山
热门文章
- 博文第二天,一切刚刚开始
- 吴恩达机器学习第二次作业——逻辑回归
- 洛谷3258 松鼠的新家
- vs2019配置C#
- 限制input 输入框只能输入纯数字/数字/中文/英文
- hive--union all后无数据/少数据
- 《北大青鸟 基于.NET的WEB程序设计 视频教程》32集全部
- 1.小象笔记--汇率换算
- dnf剑魂buff等级上限_DNF男鬼剑三觉,剑魂重回“鬼剑一哥”地位,再现“一肩成神”风采...
- lol无限火力服务器瘫痪,LOL无限火力:玩家找到秒进“BUG”,现在还未修复赶紧去...