实现此功能可以考验对python基础知识的掌握,很适合刚刚入门python的人来实践,对代码有疑问的可以关注和私信作者,欢迎我们一起探讨。
from unicodedata import name
stud_list=[]
stud_dict={}
class student:
#查看所有学生信息
def show():
print("姓名\t\t\t学号\t\t\t成绩")
for stud_dict in stud_list:
print("%s\t\t\t%s\t\t\t%s"%(stud_dict["name"],stud_dict["studno"],stud_dict["studscore"]))
#查看指定学生信息
def lookup():
find_name=input("请输入要查询的学生姓名:")
for stud_dict in stud_list:
if(stud_dict["name"]==find_name):
print("姓名\t\t\t学号\t\t\t成绩")
print("%s\t\t\t%s\t\t\t%s"%(stud_dict["name"],stud_dict["studno"],stud_dict["studscore"]))
#添加学生信息
def inster():
name=input("请输入姓名:")
studno=input("请输入学号:")
studscore=input("请输入成绩:")
stud_dict={"name":name,"studno":studno,"studscore":studscore}
stud_list.append(stud_dict)
print(stud_list)
print("成功添加%s的信息"%stud_dict["name"])
#修改学生成绩
def change():
findname=input("请输入要修改学生的姓名:")
for stud_dict in stud_list:
if stud_dict["name"]==findname:
stud_dict["studscore"]=input("请输入修改后的成绩:")
print("修改成功\n")
#删除指定学生信息
def delete():
findname=input("请输入要删除学生的姓名:")
for stud_dict in stud_list:
if(stud_dict["name"]==findname):
stud_list.remove(stud_dict)
if __name__ == "__main__":
def fun(fun2):
def main():
fun2()
while True:
print("\n")
print("*"*40)
print("**********学生成绩管理系统**********")
print("***1.查看所有学生***")
print("***2.查看指定学生***")
print("***3.添加学生信息***")
print("***4.修改学生信息***")
print("***5.删除学生信息***")
print("***6.退出系统***")
print("*"*40)
num = int(input("请输入要执行的操作:"))
if num == 1:
student.show()
elif num == 2:
student.lookup()
elif num == 3:
student.inster()
elif num == 4:
student.change()
elif num ==5:
student.delete()
elif num == 6:
print("欢迎下次使用!!!")
break
else:
print("输入的值无效")
break
return main
def fun1(): #这里的fun1其实就是一个装饰器,是后续加上去的功能
ps = 123456
ps1 = int(input("请输入密码:"))
while ps !=ps1:
ps1 = int(input("请再次输入密码:"))
if ps1 != ps:
continue
fun1 = fun(fun1) #使用装饰器实现密码的输入,这里调用fun()函数将fun1函数赋给fun2(),将返回的main赋给fun1。
fun1() #因为使用装饰器时已经将main赋给fun1(),所以这里调用fun1()实则是调用main()。