字典的案例演示

原创 2018年04月17日 11:11:54

案例:有10个学生,姓名自行添加。有三门考试语文,数学和英语,随机为这10个学生生成分数【50-100】,需求:打印一张成绩排名表。数据存储格式如下:

import random

# 初始化学生的基本信息

dic_student_info = {95001: "王一", 95002: "胡二", 95003: "张三", 95004: "李四", 95005: "赵五",

                    95006: "马六", 95007: "杨七", 95008: "刘八", 95008: "孙九", 95010: "陈十"}

# 生成学生成绩

student_result = []

for i in range(len(dic_student_info)):

   temp_result = []

   for j in range(3):

       temp_result.append(random.randint(50,100))

       # 添加到student_result

    student_result.append(temp_result)

# 打印生成的成绩

print(student_result)

 

 

# 生成总分的list

total_result = []

for i in student_result:

   total_result.append(sum(i))

 

# 把总分倒叙排列

total_result.sort(reverse=True)

print(total_result)

 

# 组合存储结构

total_student_result = {}

# 获得学生信息的key

student_sno = list(dic_student_info)

 

 

# 遍历

index = 0

for i in student_sno:

   temp_total = {}

   temp_total["姓名"] = dic_student_info[i]

   temp_total["明细"] = list(student_result)[index]

   temp_total["总分"] = sum(list(student_result)[index])

   temp_total["名次"] = total_result.index(sum((student_result)[index])) + 1

    total_student_result[i] = temp_total

   index += 1

for i in total_student_result:

   print(i, ":", total_student_result[i])

 

# 打印一张成绩倒叙排名表【名次,学号,姓名,语文,数学,英语,总分,均分】

print("\n \n ###########################成绩统计表##############################")

print("名次     学号       姓名       语文    数学    英语     总分    均分")

print("=====================================================================")

for i in range(len(dic_student_info)):

   for j in total_student_result:

       if total_student_result[j]["名次"] == i + 1:

            print(i+1, end="\t \t")

            print(j, end="\t \t")

            print(total_student_result[j]["姓名"], end="\t \t")

            print(total_student_result[j]["明细"][0], end="\t \t")

            print(total_student_result[j]["明细"][1], end="\t \t")

            print(total_student_result[j]["明细"][2], end="\t \t")

            print(total_student_result[j]["总分"], end="\t \t")

            print("%.2f"%(total_student_result[j]["总分"]/3))

            break

        else:continue

print("=====================================================================")

执行结果:

C:\python\python.exeC:/python/demo/file3.py

[[77, 57, 61], [64, 77, 65], [88, 88,83], [95, 75, 100], [57, 79, 88], [59, 90, 90], [88, 68, 80], [59, 79, 89],[58, 55, 73]]

[270, 259, 239, 236, 227, 224, 206,195, 186]

95001 : {'姓名':'王一','明细':[77, 57, 61], '总分': 195, '名次': 8}

95002 : {'姓名':'胡二','明细':[64, 77, 65], '总分': 206, '名次': 7}

95003 : {'姓名':'张三','明细':[88, 88, 83], '总分': 259, '名次': 2}

95004 : {'姓名':'李四','明细':[95, 75, 100], '总分': 270, '名次': 1}

95005 : {'姓名':'赵五','明细':[57, 79, 88], '总分': 224, '名次': 6}

95006 : {'姓名':'马六','明细':[59, 90, 90], '总分': 239, '名次': 3}

95007 : {'姓名':'杨七','明细':[88, 68, 80], '总分': 236, '名次': 4}

95008 : {'姓名':'孙九','明细':[59, 79, 89], '总分': 227, '名次': 5}

95010 : {'姓名':'陈十','明细':[58, 55, 73], '总分': 186, '名次': 9}

 

 

 ###########################成绩统计表##############################

名次     学号       姓名       语文    数学    英语     总分    均分

=====================================================================

1                95004                李四                95                75                100                270                90.00

2                95003                张三                88                88                83                259                86.33

3                95006                马六                59                90                90                239                79.67

4                95007                杨七                88                68                80                236                78.67

5                95008                孙九                59                79                89                227                75.67

6                95005                赵五                57                79                88                224                74.67

7                95002                胡二                64                77                65                206                68.67

8                95001                王一                77                57                61                195                65.00

9                95010                陈十                58                55                73                186                62.00

 

Process finished with exit code 0

缔造PPT完美演示之路

-
  • 1970年01月01日 08:00

HTML5 localStorage使用演示代码实例---------评论

分享一段代码实例,它利用localStorage实现了本地留言板功能。 代码实例如下: 001002003004005006007008009010011012013014015016017018...
  • Return_KB
  • Return_KB
  • 2018-01-10 11:50:23
  • 79

分布式服务dubbo框架的实例演示

  • 2015年03月07日 15:56
  • 20KB
  • 下载

学习爬虫基础5-一个简单的小案例

爬去百度贴吧中的html文档下来会使用到urllib中的 urllib.urlencode() 方法来编码发送请求时候的 请求参数 URL编码转换:urllib的urlencode()urllib ...
  • Demo_3
  • Demo_3
  • 2017-07-16 23:59:51
  • 252

Android学习历程--Sqlite的使用(商品展示案例)

一、何为Sqlite SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且由于...
  • xiaoxiaobai123456
  • xiaoxiaobai123456
  • 2017-04-25 17:42:51
  • 200

SmartSWT软件截图

  • javaboy
  • javaboy
  • 2006-02-07 20:50:00
  • 1783

android 之SQLite案例--商品展示

我们学习了关于数据库的知识,对增删改查有了一定的了解。今天用安卓做一个小案例。要实现增删改查使用到ListView和SQLite数据库。步骤如下: 1.activity_main.xml   ...
  • zhaozhao_07
  • zhaozhao_07
  • 2017-04-23 17:05:24
  • 153

一个登陆小案例演示Servlet的使用

1.servletConfig对象和servletContext对象 servlet 容器使用的 servlet 配置对象,该对象在初始化期间将信息传递给 servlet ``` Servl...
  • teashui
  • teashui
  • 2016-05-31 01:30:57
  • 235

(七)计算器实例

开发一个支持四则运算且能识别错误计算式的计算器   计算器示例界面设计: 以QWidget对象作为窗口,子组件为QLineEdit对象与QPushButton对象 组件间间隔10px,按钮宽40px、...
  • Hello_World_LVLcoder
  • Hello_World_LVLcoder
  • 2017-02-06 21:31:48
  • 519

轨迹动画演示的例子

这里有一系列动态的曲线和曲面. 你或者可以直接观察, 或者可以将它们录入到菜单然后运行 (例如, 改变参数和选项). 逐步推进的平面曲线. (摆线) 展示.   将它的方程录入到菜单...
  • pizi0475
  • pizi0475
  • 2012-08-18 07:30:18
  • 1001
收藏助手
不良信息举报
您举报文章:字典的案例演示
举报原因:
原因补充:

(最多只允许输入30个字)