本篇文章主要分享python学生管理系统的使用,文章非常详细地介绍了通过示例代码实现的学生管理系统,该系统对每个人的研究或工作都有一定的参考学习价值,希望你能在其中有所收获。

这个是用python实现的基本的增删改查的学生管理系统,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟练了!二话不说先贴代码,一切问题请看注释,都很详细,非常适合python3初学者!

以下是操作流程和实现代码:

"""
学生管理系统
主要特点:1.可以检测学号是否重复/有误(不为纯数字)
2.可以检测手机号是否合法(是否为纯数字)
3.可以检测性别是否为男或者女
4.能选择性修个学生的某个属性信息,比如只修改某个学生的手机号码
5.能够实现基本的增删改查
6.优化了代码
""" name_list = [] # 存储学生信息字典,学生信息用字典存,再用列表存储字典 # 菜单
def display_menu():
print("-"*30)
print(" 学生管理系统 v8.8 ")
print("1.添加学生信息")
print("2.删除学生信息")
print("3.修改学生信息")
print("4.查询单个学生信息")
print("5.查询所有学生信息")
print("6.退出系统")
print("-"*30) # 选择序号的获得
def get_choice():
selected_key = input("请输入选择的序号:")
return selected_key # 检查性别是否合法
def check_sex(new_sex):
flag = True
while flag:
if new_sex == '男' or new_sex == '女':
flag = False
else:
new_sex = input("输入性别有误,请重新输入(男/女):")
return new_sex # 检查电话号码是否合法
def check_phone(new_phone):
flag = True
while flag:
if new_phone.isdigit():
flag = False
else:
new_phone = input("您输入的电话号码有误,请重新输入:")
return new_phone # 检查学号是否重复或者有误
def check_id(new_id):
flag = True
while flag:
# 先检查是不是纯数字再去考虑是否重复的事情,如果不是纯数字直接pass
if new_id.isdigit():
for i in range(len(name_list)):
if name_list[i]['id'] == new_id:
new_id = check_id(input("您输入的学号重复,请重新输入:"))
flag = False
else:
new_id = input("您输入的学号有误,请重新输入:")
return new_id # 添加学生信息
def add_name():
new_info = {}
new_id = check_id(input("请输入学号:"))
new_info['id'] = new_id
new_name = input("请输入姓名:")
new_info['name'] = new_name
new_sex = check_sex(input("请输入性别(男/女):"))
new_info['sex'] = new_sex
new_phone = check_phone(input("请输入电话号码:"))
new_info['phone'] = new_phone
name_list.append(new_info)
print("添加成功!") # 查询所有学生信息
def find_all():
print("="*30)
for name in name_list:
print(name['id'], name['name'], name['sex'], name['phone'])
print("=" * 30) # 删除学生信息
def del_name():
del_id_is = input("请输入要删除的学生学号:")
flag = False
index = 0
for i in range(len(name_list)):
if name_list[i]['id'] == del_id_is:
flag = True
index = i
break
if flag:
name_list.pop(index)
print("删除成功!")
else:
print("学生未找到!请检查学号输入是否有误!") # 名字修改细节函数
def choice_of_name(index):
while True:
choice = input("请输入要修改学生的(1.id 2.姓名 3.性别 4.电话号码,5.全部修改):")
if choice == '5':
new_id = input("请输入新的学号:")
name_list[index]['id'] = new_id
new_name = input("请输入新的姓名:")
name_list[index]['name'] = new_name
new_sex = check_sex(input("请输入性别(男/女):"))
name_list[index]['sex'] = new_sex
new_phone = check_phone(input("请输入电话号码:"))
name_list[index]['phone'] = new_phone
break
elif choice == '1':
new_id = input("请输入新的学号:")
name_list[index]['id'] = new_id
break
elif choice == '2':
new_name = input("请输入新的姓名:")
name_list[index]['name'] = new_name
break
elif choice == '3':
new_sex = check_sex(input("请输入性别(男/女):"))
name_list[index]['sex'] = new_sex
break
elif choice == '4':
new_phone = check_phone(input("请输入电话号码:"))
name_list[index]['phone'] = new_phone
break
else:
print("输入有误,请重新输入!") # 修改学生信息
def re_name():
id_is = input("请输入要修改的学生学号:")
flag = False
index = 0
# 先找到要修改的学生的下标
for i in range(len(name_list)):
if name_list[i]['id'] == id_is:
flag = True
index = i
break
if flag:
choice_of_name(index)
print("修改成功!")
else:
print("修改失败,学生信息未找到!") # 查询单个学生信息
def find_name():
find_id_is = input("请输入要查询的学生学号:")
flag = False
index = 0
for i in range(len(name_list)):
if name_list[i]['id'] == find_id_is:
flag = True
index = i
break
if flag:
print("学生查询到,学生信息为:")
print(name_list[index]['id'], name_list[index]['name'], name_list[index]['sex'], name_list[index]['phone'])
else:
print("学生未找到!") def main():
exit_name = True
while exit_name:
display_menu()
key = get_choice()
if key == '1':
add_name()
elif key == '2':
del_name()
elif key == '3':
re_name()
elif key == '4':
find_name()
elif key == '5':
find_all()
elif key == '6':
exit_name = False
else:
print("请输入正确的数值!") main()

使用Python实现基本的学生管理系统的更多相关文章

  1. python开发的学生管理系统

    python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...

  2. Python连接SqlServer+GUI嵌入式——学生管理系统1.0

    学生管理系统1.0 1.建学生数据库 2.数据库嵌入高级语言(Python) 3.界面设计 简化思路: 1.先通过SqlServer2012建立学生数据库,包括账号.密码,姓名.选课等信息 2.运用P ...

  3. 用python实现简易学生管理系统

    以前用C++和Java写过学生管理系统,也想用Python试试,果然“人生苦短,我用Python”.用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 #!/usr/bin/pyt ...

  4. python学生管理系统

    import osimport re #获取本机用户名,构建student.txt文件名创建在左面import getpassusername=getpass.getuser()print(" ...

  5. 如何用python做出老师看了都给满分的GUI学生管理系统毕设

    序 言 哈喽大家好鸭!我是小熊猫 最近有什么有趣的事情发生吗?快来说给我听听( •̀ ω •́ )✧表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我丢脸啊,教他又不肯学,还 ...

  6. 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)

    1.项目说明基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然 ...

  7. python简易版学生管理系统

    #coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...

  8. 学生管理系统 Python语言

    def show_student(): print(('*'*20).center(55)) print('1.添加学生信息'.center(50)) print('2.修改学生信息'.center( ...

  9. 学生管理系统(python实现)

    # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("------------------" ...

  10. Python学习——实现文件交互的学生管理系统

    第一次用写博客,从前一直在博客园上学习,现在也来这里分享一下我的学习成果. 就开门见山的说吧.首先做了一个流程图,可能也不符合啥规范,就当草稿用,将就着看,明白个设计思路就行. 1.首先系统初始化,定 ...

随机推荐

  1. [ABC317G] Rearranging

    Problem Statement There is a grid with $N$ rows and $M$ columns. The square at the $i$-th row from t ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (156)-- 算法导论12.3 3题

    三.用go语言,对于给定的 n 个数的集合,可以通过先构造包含这些数据的一棵二叉搜索树(反复使用TREE-INSERT 逐个插入这些数),然后按中序遍历输出这些数的方法,来对它们排序.这个排序算法的最 ...

  3. .NET周刊【12月第1期 2023-12-06】

    国内文章 .NET 与 OpenEuler 共展翅,昇腾九万里 https://www.cnblogs.com/shanyou/p/17858385.html 本文介绍了openEuler操作系统,它 ...

  4. 使用create-vue创建vue3项目

    create-vue是vue3新的脚手架搭建项目工具,底层构建工具使用vite,而不是vue-cli的webpack. 但不是说你不能用以前的vue create命令来创建vue3项目,你完全可以用v ...

  5. 【2016】CloneCD和IsoBuster配合使用以提取VCD中的文件

    **笔记记录于:2016-11-24 ** 本文章仅供用于技术研究用途,请勿利用文章内容操作用于违反法律的事情. 起因: 公司老总让我提取下VCD中的文件以备份下,但是把光碟放进DVD光驱中发现只有几 ...

  6. python tkinter使用(四)

    python tkinter使用(四) 本篇文章主要讲下tkinter 的文本框相关. tkinter中用Entry来实现输入框,类似于android中的edittext. 具体的用法如下: 1:空白 ...

  7. 【Python】【ChatGPT】本地部署ChatGPT学习记录

    学习一下GPT项目的相关使用和部署 一.GPT4ALL模型 Github:https://github.com/nomic-ai/gpt4all GPT4ALL项目部署简易,但是在运行体验上一般,并且 ...

  8. ACTF flutter逆向学习

    参考了许多大佬的博客,在此特别诚挚感谢oacia大佬和其他大佬的博客和指导! 1.flutter和apk基础结构介绍 首先下载附件,是一个apk文件,用jadx打开 可以看见flutter字样,而fl ...

  9. 文件不落地上线sliver

    接着二开sliver,给他添加一个生成powershell payload上线的功能,生成并复制到剪切板. ‍ 准备 首先,先开启监听,不多说直接mtls默认的就行,sliver可以生成配置文件来实现 ...

  10. 自定义md-loader来简单高效的维护组件文档

    个人觉得,组件库最难的不是开发,而是使用,怎么才能让组内同事都用起来,这才是关键 背景 虽然现在开源的组件库很多,但每个项目里还是或多或少都会有人封装出一些项目内通用的基础组件.业务组件 我参与过多个 ...