在完成了Python的入门学习之后,为了对自己的能力有一个检测,对之前学习的内容有一个总结性的练习。我开始了“学生管理系统”的制作。
制作完成的源代码如下:
#学生管理系统
#Vol.1.0.0
#Lylong
#定义一个学生信息储存变量
stulist = [
{'name':'liyuanlong','age':24,'classid':'linux01'},
{'name':'lisongyan','age':19,'classid':'python03'},
{'name':'zhaosi','age':22,'classid':'web02'}]
#定义学生信息显示函数
def showStu(stulist):
if len(stulist)==0:
print('=============== 没有可以显示的信息! =================')
return
print ('|{0:<5}| {1:<15}| {2:<5}| {3:<10}'.format('sid','name','age','classid'))
print ('-'*40)
for i in range(len(stulist)):
print ('|{0:<5}| {1:<15}| {2:<5}| {3:<10}'.format(i+1,stulist[i]['name'],stulist[i]['age'],stulist[i]['classid']))
#主界面显示
while True:
print('='*12,'学生管理系统','='*14)
print('{0:1}{1:13}{2:13}'.format(' ','1.查看学生信息','2.增加学生信息'))
print('{0:1}{1:13}{2:13}'.format(' ','3.删除学生信息','4.退出管理系统'))
print('='*40)
key = input('请输入所要执行操作的序号:')
#交互操作
#学生信息查看
if key == '1':
print('='*12,'学生信息查看','='*14)
showStu(stulist)
input('按回车继续:')
#学生信息增加
elif key == '2':
while True:
print('='*12,'学生信息增加','='*14)
stu={}
stu['name'] = input('请输入想要添加的学生姓名:')
stu['age'] = input('请输入想要添加的学生年龄:')
stu['classid'] = input('请输入想要添加的学生班级号:')
stulist.append(stu)
showStu(stulist)
choice = input('是否继续添加(Y/N):')
if choice == "Y":
continue
elif choice == "N":
input ('已添加完毕,按回车继续:')
break
else:
print('错误的指令输入!')
input('按回车继续:')
#学生信息删除
elif key == '3':
while True:
print('='*12,'学生信息删除','='*14)
showStu(stulist)
sid = int(input('请输入要删除学生的ID号:'))
del stulist[sid - 1]
showStu(stulist)
choice = input('是否继续删除(Y/N):')
if choice == "Y":
continue
elif choice == "N":
input ('已删除完毕,按回车继续:')
break
else:
print('错误的指令输入!')
#退出管理系统
elif key == '4':
print('='*12,'再见!','='*14)
break
else:
print('='*12,'无效的输入!','='*14)
由于还没有学习Python脚本对其他文件的增删改,我这里的“学生信息”是以dict的形式保存在一个list中的。
#定义一个学生信息储存变量
stulist = [
{'name':'liyuanlong','age':24,'classid':'linux01'},
{'name':'lisongyan','age':19,'classid':'python03'},
{'name':'zhaosi','age':22,'classid':'web02'}]
接下来,我先开始了主界面的制作。
#主界面显示
print('='*12,'学生管理系统','='*14)
print('{0:1}{1:13}{2:13}'.format(' ','1.查看学生信息','2.增加学生信息'))
print('{0:1}{1:13}{2:13}'.format(' ','3.删除学生信息','4.退出管理系统'))
print('='*40)
key = input('请输入所要执行操作的序号:')
完成了主界面的制作之后,我开始编写主体部分。主体部分由一个条件判断构成。
#交互操作
#学生信息查看
if key == '1':
print('='*12,'学生信息查看','='*14)
input('按回车继续:')
#学生信息增加
elif key == '2':
print('='*12,'学生信息增加','='*14)
input('按回车继续:')
#学生信息删除
elif key == '3':
print('='*12,'学生信息删除','='*14)
input('按回车继续:')
#退出管理系统
elif key == '4':
print('='*12,'再见!','='*14)
else:
print('='*12,'无效的输入!','='*14)
在完成这一步之后,我经测试考虑到,用户想要一直应用这个系统,而不是做完当前选择后就只能重新运行程序。因此,我在主界面显示模块和主体条件判断模块前加入了一个死循环。
while True:
并且,当用户在执行“4”——退出系统后,加入退出循环。
break
由此,主界面和基本操作功能便已经完成,下面我开始实现各项功能:
#定义学生信息显示函数
def showStu(stulist):
if len(stulist)==0:
print('=============== 没有可以显示的信息! =================')
return
print ('|{0:<5}| {1:<15}| {2:<5}| {3:<10}'.format('sid','name','age','classid'))
print ('-'*40)
for i in range(len(stulist)):
print ('|{0:<5}| {1:<15}| {2:<5}| {3:<10}'.format(i+1,stulist[i]['name'],stulist[i]['age'],stulist[i]['classid']))
这里是我定义了一个显示学生信息的函数,运用了format函数*用来格式化输出字符串。(函数详情请参考:https://blog.csdn.net/jb19900111/article/details/20284083)
使用了一个简单的for循环遍历list中的信息,显示。
接下来在显示学生信息部分调用这个函数。
#学生信息查看
if key == '1':
print('='*12,'学生信息查看','='*14)
showStu(stulist)
input('按回车继续:')
显示功能就完成啦。
下来,我们开始制作删除功能。使用Python中自带的del函数即可完成list中的信息删除。
#学生信息删除
elif key == '3':
print('='*12,'学生信息删除','='*14)
showStu(stulist)
sid = int(input('请输入要删除学生的ID号:'))
del stulist[sid - 1]
showStu(stulist)
input('按回车继续:')
但是这样无法执行连续删除信息,于是我又在其中加入了一个死循环,并且由用户选择是否继续执行删除操作。
#学生信息删除
elif key == '3':
while True:
print('='*12,'学生信息删除','='*14)
showStu(stulist)
sid = int(input('请输入要删除学生的ID号:'))
del stulist[sid - 1]
showStu(stulist)
choice = input('是否继续删除(Y/N):')
if choice == "Y":
continue
elif choice == "N":
input ('已删除完毕,按回车继续:')
break
else:
print('错误的指令输入!')
于是信息删除模块的功能也制作完成了。
下来我就开始了学生信息添加模块的制作,在Python中在list中添加信息可以用append函数来完成,我们只需要定义一个dict形式的变量,来让用户输入信息,并把dict变量append到list中即可。
stu={}
stu['name'] = input('请输入想要添加的学生姓名:')
stu['age'] = input('请输入想要添加的学生年龄:')
stu['classid'] = input('请输入想要添加的学生班级号:')
stulist.append(stu)
然后同样的,为了让用户可以重复的进行添加,我类似的编写了一个循环,由用户选择是否继续添加,于是添加模块就变成了:
#学生信息增加
elif key == '2':
while True:
print('='*12,'学生信息增加','='*14)
stu={}
stu['name'] = input('请输入想要添加的学生姓名:')
stu['age'] = input('请输入想要添加的学生年龄:')
stu['classid'] = input('请输入想要添加的学生班级号:')
stulist.append(stu)
showStu(stulist)
choice = input('是否继续添加(Y/N):')
if choice == "Y":
continue
elif choice == "N":
input ('已添加完毕,按回车继续:')
break
else:
print('错误的指令输入!')
input('按回车继续:')
至此,添加功能也完成了。
到这里,学生管理系统就制作完成了。
通过这个练习,我复习了Python基础学习中的list、dict形式的信息存储,以及其中内容的增、删、显示,信息的输入和输出,还复习了Python中定义函数的方法,以及for、while、if各种语句的运用。作为阶段性的练习和总结这是一个非常好的练习,更调动了我接下来继续学习的积极性,增添了动力。
时光易老,我选Python。
(另外。。我所有代码真的只敲了一遍 不知道为啥都显示两遍。。希望不要在意。)