# 4. 修改之前的学生信息管理程序,实现添加菜单和选择菜单操作功能:
# 菜单:
# +-----------------------------+
# | 1) 添加学生信息 |
# | 2) 查看所有学生信息 |
# | 3) 修改学生的成绩 |
# | 4) 删除学生信息 |
# | q) 退出 |
# +-----------------------------+
# 请选择: 1
# 请输入姓名:....
# 请选择: 3
# 请输入修改学生的姓名: ....
# (要求每个功能都对应一个函数) def input_student():
# 此函数获取学生信息,并返回学生信息的字典的列表
L = []
# d = {} # 此处所有学生将共用一个字典,会出错
while True:
name = input("请输入学生姓名: ")
if not name:
break
age = int(input("请输入学生年龄: "))
score = int(input("请输入学生成绩: "))
d = {} # 重新创建一个新的字典
d['name'] = name
d['age'] = age
d['score'] = score
L.append(d)
return L def output_student(L):
# 以表格形式再打印学生信息
print('+------------+------+-------+')
print('| name | age | score |')
print('+------------+------+-------+')
for d in L: # d绑定的是字典
t = (d['name'].center(12),
str(d['age']).center(6),
str(d['score']).center(7))
line = "|%s|%s|%s|" % t # t是元组
print(line)
print('+------------+------+-------+') # 写一个打印菜单的函数
def show_menu():
print('+-----------------------------+')
print('| 1) 添加学生信息 |')
print('| 2) 查看所有学生信息 |')
print('| 3) 修改学生的成绩 |')
print('| 4) 删除学生信息 |')
print('| q) 退出 |')
print('+-----------------------------+') # 此函数用来存改学生的信息
def modify_student_info(lst):
name = input("请输入要修改学生的姓名: ")
for d in lst:
if d['name'] == name:
score = int(input("请输入新的成绩: "))
d['score'] = score
print("修改", name, '的成绩为', score)
return
else:
print("没有找到名为:", name, '的学生信息') # 定义一个删除学生信息的函数
def delete_student_info(lst):
name = input("请输入要删除学生的姓名: ")
for i in range(len(lst)): # 从0开始把所有索引取出一遍
if lst[i]['name'] == name:
del lst[i]
print("已成功删除: ", name)
return True
else:
print("没有找到名为:", name, "的学生") # 定义一个主函数,用来获取键盘操作,实现选择的功能
def main():
docs = [] # 此列表用来存储所有学生的信息的字典
while True:
show_menu()
s = input("请选择: ")
if s == '':
docs += input_student()
elif s == '':
output_student(docs)
elif s == '': # 修改学生成绩
modify_student_info(docs)
elif s == '': # 删除学生成绩
delete_student_info(docs)
elif s == 'q':
return # 结束此函数执行,直接退出 main()

总结一下思路:学生的所有信息都是输入进变量里,然后将变量指向字典对应键的值,由此单个学生的信息都存入字典中,再将这些字典存在列表中,遍历列表遍历学生信息

Python实现学生系统的更多相关文章

  1. Python作业-选课系统

    目录 Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 title: Python作业- ...

  2. 转 让Python在Android系统上飞一会儿

    让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260

  3. Python在Win10系统的安装和使用配置

    Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...

  4. python为什么叫胶水语言?python为什么是系统脚本?

    python为什么叫胶水语言?python为什么是系统脚本?   特点是什么? python现在最广为闻名的形容大概有这些: 他是很好的胶水语言.什么是胶水语言?反正当时的我不知道. 他是新一代的系统 ...

  5. python进行linux系统监控

      python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...

  6. Python获取当前系统时间

    Python获取当前系统时间 import time #返回当前时间 def GetNowTime():     return time.strftime("%Y-%m-%d %H:%M:% ...

  7. 盲法介绍及python盲打练习系统

    目录 一:盲打简介与优点 二:如何练习 三:键盘字母排列顺序的口诀 四:python打字练习系统 一:盲打简介与优点   简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的 ...

  8. Django入门到进阶-更适合Python小白的系统课程

    Django入门到进阶-更适合Python小白的系统课程 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身 ...

  9. 基于Python实现的系统SLA可用性统计

    基于Python实现的系统SLA可用性统计 1. 介绍 SLA是Service Level Agreement的英文缩写,也叫服务质量协议.根据SRE Google运维解密一书中的定义: SLA是服务 ...

随机推荐

  1. 1001. [BJOI2006]狼抓兔子【最小割】

    Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...

  2. POJ Football Game 【NIMK博弈 && Bash 博弈】

    Football Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 451   Accepted: 178 Descr ...

  3. tomcat服务器宕机解决方案

    报错信息: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:1 ...

  4. gulp插件 run-sequence(同步执行任务)

    功能描述 gulp默认使用最大并发数执行任务,也就是说所有的任务几乎都是同时执行,而不会等待其它任务.但很多时候,任务是需要有先后次序的,比如要先清理目标目录,然后再执行打包. run-sequenc ...

  5. dataTable配置项说明

    Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 官网地址:https://datatables.net/ 中文说明地址:http:/ ...

  6. PHP切割字符用到的explode 以及计数count

    在thinkphp中同样可以用 explode来进行字符的切割工作,比如 $jihe='1,2,3,4'; 在使用explode之后,可以获得一个数组: $array=explode(',',$jih ...

  7. 使用CURL模拟表单上传文件

    //以下代码适合PHP7.x PHP5.6$file = new CURLFile('./127.zip','application/octet-stream');$file->setMimeT ...

  8. 记一次Apache Carbondata PR的经历

     前言 前段时间有幸接触到Apache Carbondata,试用过程中发现了一个小小的问题,并且又很快的定位到了问题.然后在社区群里反映了下,负责人问愿不愿意提个JIRA,PR,然后我在没有任何开源 ...

  9. 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法

    Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...

  10. WP10的一点小问题

    兼容WP8.0/WP7.5不太完整!也许是测试版的问题.毕竟还没发布正式版! 具体如:WP8.0或WP7.5的启动器!就是选择图片的启动器!调用后对话框返回的结果都是Cancel本来应该是OK的.也就 ...