python输入学生姓名_Python学生信息管理系统(注释最详细,小白都看的懂)
1 importos2
3 #学生系统基本功能
4 #增删查改
5
6 #如何实现该系统
7 #1.显示系统功能界面
8 #2.让用户选择功能
9 #3.判断用户选择的指定功能,然后完成相应的操作(增删查改)
10
11 #面向对象分析
12 #1.抽象类
13 #学生系统管理类 学生类
14 #2.分析类的成员
15
16 #学生系统管理类
17 #属性:学生列表属性 保存学生信息
18 #方法:添加学生 删除学生 显示学生信息等这些方法
19
20 #学生类
21 #属性:姓名 年龄 性别
22 #方法:无
23 classStudent(object):24 def __init__(self,name,age,sex):25 #添加相关的属性信息
26 self.name=name27 self.age=age28 self.sex=sex29
30
31
32 classStudentManageSystem(object):33 def __init__(self):34 #定义一个列表用于保存学生对象
35 self.student_list =list()36
37
38 #将功能代码放到指定函数里面
39 defshow_menu(self):40 '''该函数是为了展示功能界面'''
41 #1. 显示系统的功能菜单
42 print("------学生管理系统1.0------")43 print("1.添加学生信息")44 print("2.修改学生信息")45 print("3.删除学生信息")46 print("4.显示所有学生")47 print("5.查询学生信息")48 print("6.退出管理系统")49
50
51 #添加学生函数
52 #分析:
53 #1. 学生的信息如何表示?
54 #2. 管理系统里面的学生信息如何表示?
55 defadd_student(self):56 name = input("请输入学生的姓名:")57 age = input("请输入学生的年龄:")58 sex = input("请输入学生的性别:")59 #添加一个学生,需要自己创建一个学生对象
60 stu=Student(name,age,sex)61 #把对象添加到列表里面
62 self.student_list.append(stu)63 #显示学生信息
64 #print(self.student_list)
65 print("添加成功")66
67 #显示所有学生函数
68 defshow_all_student(self):69 '''该函数用于显示所有的学生信息'''
70 #注意列表里面储存的是字典
71 #遍历的时候使用enumerate函数可以返回下标
72 for index, student inenumerate(self.student_list):73 #计算学号=下标+1
74 student_no = index + 1
75 print("学号:", student_no,76 "姓名:", student.name,77 "年龄:", student.age,78 "性别:", student.sex)79
80
81 #修改学生信息函数
82 defmodify_student(self):83 ''''该函数用来修改学生信息'''
84 #1. 接收用户要修改学生的学号
85 student_no = int(input("请输入要修改学生的学号:"))86
87 #2. 把学号转成下标, 下标 = 学号 - 1
88 index = student_no - 1
89 #判断下标是否合法
90 if 0 <= index
92 student =self.student_list[index]93
94 #4. 对学生字典的数据进行修改(名字, 年龄, 性别)
95 new_name = input("请输入修改后的姓名:")96 new_age = input("请输入修改后的年龄:")97 new_sex = input("请输入修改后的性别:")98 #对字典里面的数据进行修改
99 student.name =new_name100 student.age =new_age101 student.sex =new_sex102
103 print("修改成功")104 else:105 print("请输入正确的学号:")106
107
108 #删除学生信息
109 defdelete_student(self):110 """该函数用来删除学生信息"""
111 #1.接收用户输入的学号
112 student_no = int(input("请输入要删除学生的学号:"))113 #2.将学号转换为下标
114 index = student_no - 1
115 #判断下表是否合法
116 if 0 <= index <=len(self.student_list):117 #需求删除后把这个人的姓名显示出来,使用pop会把删除的内容返回
118 student =self.student_list.pop(index)119 print("%s,删除成功!" %student.name)120 else:121 print("请输入有效学号!")122
123
124 #查询某个学生信息
125 defquery_student(self):126 """该函数用来查询学生信息"""
127 name = input("请输入要查询学生的姓名:")128 for index, student inenumerate(self.student_list):129 student_no = index + 1
130 if student.name ==name:131 print("学号:", student_no,132 "姓名:", student.name,133 "年龄:", student.age,134 "性别:", student.sex)135 break
136 #当循环语句没有执行break,表示没有该学生信息执行else里面的语句
137 #当循环执行break语句的时候,说明该学生信息存在,不会执行else里面的语句
138 #注意:当for循环与else一起使用的时候,如果没有执行for循环里面的break则会执行else语句!!!
139 else:140 print("对不起,没有该学生")141
142 #讲列表里面的数据保存到文件里面
143 defsave_file(self):144 #1.打开文件 要以w方式打开
145 file=open("student_list.data","w",encoding="utf-8")146 #2.把数据写入文件(把列表转换为字符串类型)
147 #把列表里面的每一个对象转换成学生列表里面的字典,把对象的属性信息保存到字典里面
148 #stu.__dict__ 获取学生的字典信息把对象的属性信息以字典的形式返回
149 new_list=[stu.__dict__ for stu inself.student_list]150 student_list_str=str(new_list)151 print(student_list_str,type(student_list_str))152 file.write(student_list_str)153 file.close()154
155 #加载文件里面的内容,将文件里面的内容加载到列表里面****
156
157 defload_file(self):158 #1.判断文件是否存在 返回值类型是布尔类型
159 if os.path.exists("student_list.data"):160 #1.打开文件 r模式
161 file=open("student_list.data","r",encoding="utf-8")162 #2.读取文件里面的数据
163 value=file.read()164 #因为从文件里面读取的是字符串类型,所以需要先转换为列表类型
165 #注意这里将字符串转换为列表需要使用eval()函数,获取字符串包裹的内容
166 new_list=eval(value)167 print("从文件里面获取的内容为:",new_list,type(new_list))168 #把列表里面每一个学生字典信息转换为对象
169 #**stu_dict:把字典里面的每一项数据按照关键字传参
170 #Student(**stu_dict)表示创建一个学生对象
171 new_list=[Student(**stu_dict) for stu_dict innew_list]172 print(new_list)173 #3.将文件里面的内容添加到列表里面
174 #方法一:使用global
175 #global student_list
176 #student_list=new_list
177 #方法2:方式,把文件中的列表数据扩展到全局变量里面, 这里不需要加上global,因为列表是可变类型
178 self.student_list.extend(new_list)179 file.close()180
181
182 #程序入口函数,程序开始时第一个执行的函数
183 defstart(self):184 #当程序运行的时候加载一次文件
185 self.load_file()186
187 whileTrue:188 #1.显示系统功能菜单
189 self.show_menu()190
191 #2.接收用户输入的功能选项
192 menu_option = input("请输入你要操作的功能选项:")193
194 #3. 判断用户选择的指定功能,然后完成对应的操作(增删改查的功能)
195 if menu_option == "1":196 print("添加学生信息")197 self.add_student()198 elif menu_option == "2":199 print("修改学生信息")200 self.modify_student()201 elif menu_option == "3":202 print("删除学生信息")203 self.delete_student()204 elif menu_option == "4":205 print("显示学生信息")206 self.show_all_student()207 elif menu_option == "5":208 print("查询学生信息")209 self.query_student()210 elif menu_option == "6":211 print("程序退出")212 self.save_file()213 break
214
215 system=StudentManageSystem()216
217 system.start()
python输入学生姓名_Python学生信息管理系统(注释最详细,小白都看的懂)相关推荐
- python输入学生姓名_python学生信息管理系统实现代码
1.本人第一次学python做出来的,当时满满的成就感,当作纪念!!!!! 非常简单,复制即可使用 代码块 import json#把字符串类型的数据转换成Python基本数据类型或者将Python基 ...
- python类定义学生信息_Python学生信息管理系统(注释最详细,小白都看的懂)
1 importos2 3 #学生系统基本功能 4 #增删查改 5 6 #如何实现该系统 7 #1.显示系统功能界面 8 #2.让用户选择功能 9 #3.判断用户选择的指定功能,然后完成相应的操作(增 ...
- python输入学生姓名_python学生管理系统(增删改查以及菜单返回操作)
(1)功能需求:1.在一个循环中可以输入内容2.显示函数1.新的商业卡2.显示所有3.查询业务网卡0.退出系统3.他们想让用户输入操作执行,比如输入1,2,3,04.新list-prompt用户输入名 ...
- python输入班级姓名_python,寻找班级里面名字最长的人
寻找班级里面名字最长的人 我有一串字符串人名:names=(' Kunpen Ji, Li XIAO, Caron Li,' ' Dongjian SHI, Ji ZHAO, Fia YUAN Y,' ...
- 小白都看得懂的使用Python生成随机验证码图片,以及后续优化方案
环境:Anaconda3-2020.02 首先我们分解一下需要做什么: 生成随机的字母字符串 生成生成随机的背景色 生成随机的字体颜色 把随机的字符串用随机的颜色渲染,然后放到一块随机的背景色上面,基 ...
- [附源码]java毕业设计高校学生疫情防控信息管理系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- java从键盘上录入学生人数和每个学生的姓名以及分数,按照分数降序输出,学生名次、学生姓名、学生分数
java从键盘上录入学生人数和每个学生的姓名以及分数,按照分数降序输出,学生名次.学生姓名.学生分数 import java.util.Scanner;/* * 从键盘上录入学生人数和每个学生的姓名以 ...
- C语言小项目:学生信息管理系统(超详细)
学生信息管理系统 需求概述 展示 总体设计 功能划分 数据结构 程序流程 详细设计 头文件部分 结构体 密码登录模块 菜单显示 班级创建模块 学生信息录入模块 学生信息显示模块 学生信息查询模块 学生 ...
- Python实现一个简单的毕业生信息管理系统的示例代码!非常简单
毕业生信息管理系统,实现学生个人信息基本的增删改查, 我想了想前段时间刚学习的列表,这个简单啊 ,设计一个学生信息列表,然后列表里面再存每个学生详细信息的列表,然后来实现一个基本的增删查改,这个不难啊 ...
最新文章
- 苹果小圆点怎么关闭_苹果手机连按2下屏幕,就能自动截图,不知道的来学一学...
- BZOJ 1059 - 二分图匹配
- python怎样把两个图画到一起_python实现两张图片拼接为一张图片并保存
- quill变html转化,将Quill Delta转换为HTML
- 《C++ Primer 5th》笔记(11 / 19):关联容器
- gridview 简单的分页
- c语言实现顺序表源程序,C语言实现静态顺序表的实例详解
- nginx配置跨域、gzip加速、代理详细讲解
- Spring Cloud学习笔记-009
- sql2012找不到到服务器,SQL Server无法连接到服务器怎么办
- python aiohttp百万并发
- FFmpeg编码详细流程
- 虚拟大师怎么修改手机_[Android] 新版手机虚拟大师VMOS Pro超精简无广告2秒启动...
- 强化学习之Q-Learning(附代码)
- RICOH 身份证 便捷打印
- 乒乓球比赛赛程_这家律所再次摘得业余乒乓球赛事冠军,为何结缘乒乓?
- 大数据特点5V 商业智能实现的三个层次
- IDEA 解决import类飘红
- work-notes(15):私服报错401,Sonatype Nexus Repository Manager,may not contain non-url-safe chars如何解决?
- 安装java8和tomcat_jdk1.8.0+tomcat8.0安装