python学生信息管理完整版

def input_student():
x = [] # 先创建一个空列表,准备放入学生信息的字典
while True:
d = {} # 每次创建一个新的字典存放当前学生的数据
name = d[‘name’] = input('请输入姓名: ')
if name == ‘’: # 如果学生姓名为空,结束输入
break
try: # 下面两个语句如果输入字符串会出现异常,用try语句捕获异常,并让程序继续运行,新手可以省略这部分
d[‘age’] = int(input('请输入年纪: '))
d[‘score’] = int(input('请输入成绩: '))
except ValueError:
print(‘值输入错误,请按空格键后重新输入’)
input()
continue
x.append(d) # 将字典追加到列表中
return x

def output_student(x):
print(‘±-------------------------------------+’)
print(’|’, ‘姓名’.center(8), ‘|’, ‘年纪’.center(8), ‘|’, ‘成绩’.center(8), ‘|’)
print(‘±-------------------------------------+’)
for i in x: # i[‘age’]和 i[‘score’]绑定的是整数,转化为字符串后才能居中
print(’|’, i[‘name’].center(10), ‘|’, str(i[‘age’]).center(10), ‘|’, str(i[‘score’]).center(10), ‘|’)
print(‘±-------------------------------------+’)

def delete_student(x): # x绑定的是列表对象
s = input(‘请输入要删除学生的姓名:’)
for i in x: # 在列表中边里字典
if i[‘name’] == s: # 索引关键字找到要删除的学生
x.remove(i) # 删除字典
return x

def modify_student(x):
s = input(‘请输入要修改学生的姓名:’)
for i in x:
if i[‘name’] == s:
n = int(input(‘请输入修改后的成绩’))
i[‘score’] = n # 修改学生的成绩
return x

def jx_cj_student(x): # 用lambda创建一个得到分数的函数
L = sorted(x, key=lambda i: i[‘score’], reverse=True)
output_student(L) # sorted 会产生一个新的列表,所以需要调用输出函数来进行显示,原列表不变

def sx_cj_student(x):
d = sorted(x, key=lambda i: i[‘score’])
output_student(d)

def jx_age_student(x):
d = sorted(x, key=lambda i: i[‘age’], reverse=True)
output_student(d)

def sx_age_student(x):
d = sorted(x, key=lambda i: i[‘age’])
output_student(d)

def fail_student(x):
def fx(d): # 先定义一个判定是否及格的函数
if d[‘score’] < 60:
return d
s = filter(fx, x) # 通过filter函数筛选得到不及格学生的信息
output_student(s)

def show_menu():
print(‘±----------------------------+’)
print(’| 1)添加学生信息 |’)
print(’| 2)显示学生信息 |’)
print(’| 3)删除学生信息 |’)
print(’| 4)修改学生成绩 |’)
print(’| 5)按成绩由高到低排序 |’)
print(’| 6)按成绩由低到高排序 |’)
print(’| 7)按年纪由大到小排序 |’)
print(’| 8)按年纪由小到大排序 |’)
print(’| 9)显示不及格学生成绩 |’)
print(’| q)退出 |’)
print(‘±----------------------------+’)

def main():
info = []
while True:
show_menu()
s = input(‘请选择:’)
if s == ‘1’:
info += input_student()
elif s == ‘2’:
output_student(info)
elif s == ‘3’:
delete_student(info)
elif s == ‘4’:
modify_student(info)
elif s == ‘5’:
jx_cj_student(info)
elif s == ‘6’:
sx_cj_student(info)
elif s == ‘7’:
jx_age_student(info)
elif s == ‘8’:
sx_age_student(info)
elif s == ‘9’:
fail_student(info)
elif s == ‘q’:
break

main()

你可能感兴趣的:(python信息整理)