Python学习的阶段性练习——学生管理系统

  在完成了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。




(另外。。我所有代码真的只敲了一遍 不知道为啥都显示两遍。。希望不要在意。)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值