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 #学⽣类
thinkphp5 漏洞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 #对字典⾥⾯的数据进⾏修改
小白学python买什么书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
restful接口设计规范115 #判断下表是否合法
116 if 0 <= index <=len(self.student_list):117 #需求删除后把这个⼈的姓名显⽰出来,使⽤pop会把删除的内容返回
datedif函数的意义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 #加载⽂件⾥⾯的内容,将⽂件⾥⾯的内容加载到列表⾥⾯****
java多线程导出excel156
157 defload_file(self):158 #1.判断⽂件是否存在 返回值类型是布尔类型
159 if ists("student_list.data"):160 #1.打开⽂件 r模式
161 file=open("student_list.data","r",encoding="utf-8")162 #2.读取⽂件⾥⾯的数据
163 ad()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.d(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("修改学⽣信息")dify_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()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论