一、前言
相信很多小伙伴在学校期间都会被要求实现一个学生管理系统,很多是让用C语言实现,有的是要求Python。
这里通过python实现了一个学生管理系统,考试/交作业必备!
网上很多的学生管理系统版本是用列表来存储学生的,实际上这样并不是最好的实现方案。
既然学生的学号是唯一的,那我们可以直接使用字典来做,这样在查询学生是否存在的速度上会更快一些。而且更方便排序等。
文章目录
二、实现效果
包含的功能(学号为唯一标识):
- 添加学生
- 修改学生信息
- 删除学生信息
- 查询单个学生信息
- 查询所有学生信息
还做了一些保护判断:
- 输入错误的序号会给予提示;
- 创建已存在学号的学生会提示“已存在”;
- 删除/修改不存在的学生会提示“不存在”;
三、代码特点
上图菜单页的功能映射传递的实现方案往往更多的是下面这样:
源码获取
公众号:python砖家
回复:学生
key = int(input("请选择功能(序号):"))
if key==1: # key等于1时,调用增加学生的方法
add_new_student()
elif key==2:
del_student()
elif key==3:
update_student()
else:
exit()
通过if else 判断key值来调用不同的方法,这样有个不好的地方是,当方法越来越多后,代码量也会增加不少,所以这里我使用了字典里面包含方法的方式来实现:
func_dict = {1: add_new_student, 2: del_student, 3: update_student, 4: search_student, 5: print_all_student, 6: exit}
key = int(input("请选择功能(序号):"))
func = func_dict.get(key)
func() if func else print('输入错误!请重新输入!'+space)
这样哪怕增加的方法越来越多,也不会增加更多的代码。
四、源码获取
五、总结
学生信息管理系统是针对学校学生处的大量工作处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用手机和计算机对学生各种信息进行日常管理,如查询、修改、增加、删除等。
整个代码内容不多,实现也很简单,在我大学的时候,老师要求我们用C语言来写,现在越来越多的要求python了,用pytho实现比C语言会简单不少,毕竟语法简洁很多。
小伙伴们拿到源码后可自己进行diy,实现诸如排序、密码管理,批量操作的功能等。另外还可以考虑学生选课,针对这些要求设计学生信息管理系统。
编程是一门技术,也可说是一门手艺。如同书法、绘画、乐器、雕刻等,技艺纯熟的背后肯定付出了长时间的反复练习。编程的世界浩瀚无边,所以请保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符。收拾好自己的心态,向着编程的世界出发。
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
很多人都在纠结入门应该学 Python2 还是 Python3。这其实不是个问题。我从没听过某个人是 Python2 程序员或 Python3 程序员。二者只是程序不兼容,思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。
如果你仍然无法抉择,那请选择 Python3,毕竟这是未来的趋势。
本文对知乎上关于Python入门方面的问答、文章、专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。
例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。
众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:
NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。
Python本身被设计为可扩充的。
并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。
Python编译器本身也可以被集成到其它需要脚本语言的程序内。
因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。
《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用C++,在快速开发时候使用 Python。”
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。
或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。
直接下达操作指令即可实现交互操作。