Python实现学生系统
修改之前的学生信息管理程序,实现添加菜单和选择菜单操作功能:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def input_student():
# 此函数获取学生信息,并返回学生信息的字典的列表
L = []
# d = {} # 此处所有学生将共用一个字典,会出错
while True:
name = input("请输入学生姓名: ")
if not name:
break
age = int(input("请输入学生年龄: "))
score = int(input("请输入学生成绩: "))
d = {} # 重新创建一个新的字典
d['name'] = name
d['age'] = age
d['score'] = score
L.append(d)
return L
def output_student(L):
# 以表格形式再打印学生信息
print('+------------+------+-------+')
print('| name | age | score |')
print('+------------+------+-------+')
for d in L: # d绑定的是字典
t = (d['name'].center(12),
str(d['age']).center(6),
str(d['score']).center(7))
line = "|%s|%s|%s|" % t # t是元组
print(line)
print('+------------+------+-------+')
# 写一个打印菜单的函数
def show_menu():
print('+-----------------------------+')
print('| 1) 添加学生信息 |')
print('| 2) 查看所有学生信息 |')
print('| 3) 修改学生的成绩 |')
print('| 4) 删除学生信息 |')
print('| q) 退出 |')
print('+-----------------------------+')
# 此函数用来存改学生的信息
def modify_student_info(lst):
name = input("请输入要修改学生的姓名: ")
for d in lst:
if d['name'] == name:
score = int(input("请输入新的成绩: "))
d['score'] = score
print("修改", name, '的成绩为', score)
return
else:
print("没有找到名为:", name, '的学生信息')
# 定义一个删除学生信息的函数
def delete_student_info(lst):
name = input("请输入要删除学生的姓名: ")
for i in range(len(lst)): # 从0开始把所有索引取出一遍
if lst[i]['name'] == name:
del lst[i]
print("已成功删除: ", name)
return True
else:
print("没有找到名为:", name, "的学生")
# 定义一个主函数,用来获取键盘操作,实现选择的功能
def main():
docs = [] # 此列表用来存储所有学生的信息的字典
while True:
show_menu()
s = input("请选择: ")
if s == '1':
docs += input_student()
elif s == '2':
output_student(docs)
elif s == '3': # 修改学生成绩
modify_student_info(docs)
elif s == '4': # 删除学生成绩
delete_student_info(docs)
elif s == 'q':
return # 结束此函数执行,直接退出
main()
总结一下思路:学生的所有信息都是输入进变量里,然后将变量指向字典对应键的值,由此单个学生的信息都存入字典中,再将这些字典存在列表中,遍历列表遍历学生信息
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16761610.html