Python实现学生系统
# 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实现学生系统的更多相关文章
- Python作业-选课系统
目录 Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 title: Python作业- ...
- 转 让Python在Android系统上飞一会儿
让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260
- Python在Win10系统的安装和使用配置
Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...
- python为什么叫胶水语言?python为什么是系统脚本?
python为什么叫胶水语言?python为什么是系统脚本? 特点是什么? python现在最广为闻名的形容大概有这些: 他是很好的胶水语言.什么是胶水语言?反正当时的我不知道. 他是新一代的系统 ...
- python进行linux系统监控
python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...
- Python获取当前系统时间
Python获取当前系统时间 import time #返回当前时间 def GetNowTime(): return time.strftime("%Y-%m-%d %H:%M:% ...
- 盲法介绍及python盲打练习系统
目录 一:盲打简介与优点 二:如何练习 三:键盘字母排列顺序的口诀 四:python打字练习系统 一:盲打简介与优点 简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的 ...
- Django入门到进阶-更适合Python小白的系统课程
Django入门到进阶-更适合Python小白的系统课程 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身 ...
- 基于Python实现的系统SLA可用性统计
基于Python实现的系统SLA可用性统计 1. 介绍 SLA是Service Level Agreement的英文缩写,也叫服务质量协议.根据SRE Google运维解密一书中的定义: SLA是服务 ...
随机推荐
- ajax跨域请求在IE8中存在的问题
从没打算怎么去兼容老版本IE,毕竟微软自己都放弃了,可是最近做好的东西在所有的IE下都会出问题:GetJson不执行 本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并 ...
- 浅析JS中的堆内存与栈内存
最近跟着组里的大佬面试碰到这么一个问题, Q:说说var.let.const的区别 A:balabalabalabla... Q:const定义的值能改么? A:你逗我?不能吧 不知道各位看官怎么想? ...
- 基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d的扩展(三)
题外话: 最近在忙公司的云项目空闲时间不是很多,所以很久没来更新,今天补上一篇! 回顾: 前几篇介绍了一下设计器的界面和Draw2d基础知识,这篇讲解一下本设计器如何扩展Draw2d. 进入主题: 先 ...
- Android学习路线总结,绝对干货(转)
转自:https://www.cnblogs.com/yishaochu/p/5436094.html 一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉 ...
- 【转】PHP面试题总结
PHP面试总结 PHP基础 1:变量的传值与引用. 2:变量的类型转换和判断类型方法. 3:php运算符优先级,一般是写出运算符的运算结果. 4:PHP中函数传参,闭包,判断输出的echo,print ...
- Hadoop学习之路(四)Hadoop集群搭建和简单应用
概念了解 主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构. 主从结构分类: 1.一主多从 2.多主多从 Hadoop中的HDFS和Y ...
- autogen.sh脚本执行报错问题解决(针对DOMJudge平台搭建)
错误信息:./autogen.sh: 9: ./autogen.sh: aclocal: not found 解决办法: $ sudo apt-get install automake $ sudo ...
- ubuntu16.04安装oracle常见问题
报错信息: Err:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdrm2 amd64 2.4.83-1~16. ...
- JavaScript实现计时器
var myVar=setInterval(function(){myTimer()},1000); function myTimer() { var d = new Date(); document ...
- 图片在线处理 webp!
之前处理图片的方式是,小图标通过gulp配置的spritesmith雪碧图方式,.png会先用ps工具转成.jpg,然后jpg太大则用在线压缩工具来进行压缩(另外gulp系列的gulp-imagemi ...