老师发布的python作业,还有很多不是那么让人舒服的地方,但随便用用还是行的,代码可以直接运行。
代码部分:
print('-' * 55)
print('\033[1;31m该系统没有记忆功能,一旦退出系统,所有录入学生信息将会被清除!!!\033[0m')
print('-' * 55)
# 定义菜单
def menu():
print(
'*' * 20 + '\n'
'1.添加学生信息\n'
'2.查询学生信息\n'
'3.删除学生信息\n'
'4.修改学生信息\n'
'5.列出所有学生信息\n'
'6.退出系统'
)
print('*' * 20)
# 定义学生列表
listStudent = []
# 使的系统能循环执行
while True:
# 列出菜单
menu()
# 用户选择执行功能
key = input('请输入要执行的功能:')
# 执行添加功能
if key == '1':
# 用户输入学生信息
name = input('请输入学生姓名:')
num = input('请输入学生的学号:')
gender = input('请输入学生性别:')
# 判断学号是否重复
for check in listStudent:
while check['num'] == num:
num = input('学号已被添加,请再次输入:')
continue
else:
break
# 对数据进行存储
student = {'name': name, 'num': num, 'gender': gender}
listStudent.append(student)
print('\033[1;34m成功添加\033[0m')
# 执行查询功能
elif key == '2':
# 用户输入学号
check_num = input('请输入要查询的学生的学号:')
# 提取要求学号学生信息
i = 0
check = []
for check in listStudent:
if check['num'] == check_num:
i = 1
break
if i == 1:
print('\033[1;34m姓名:%s\n学号:%s\n性别:%s\n\033[0m' % (check['name'], check['num'], check['gender']))
elif i == 0:
print('\033[1;31m没有找到该学生\033[0m')
# 执行删除功能
elif key == '3':
# 用户输入学号
check_num = input('请输入要删除的学生的学号:')
# 查找所选学生
i = 0
j = 0
for check in listStudent:
if check['num'] == check_num:
j = 1
print('\033[1;34m删除成功!\033[0m')
break
else:
i = i + 1
# 删除要求学号学生信息
if j == 1:
del listStudent[i]
else:
print('\033[1;31m未找到该学生\033[0m')
# 执行修改功能
elif key == '4':
# 用户输入学生学号和要修改的信息
check_who = input('请输入要修改的学生学号:')
check_what = input('请输入要修改的信息:\n1.姓名\n2.学号\n3.性别\n')
# 修改姓名
if check_what == '1':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
if i == 1:
check['name'] = input('请输入修改后的姓名:')
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 修改学号
elif check_what == '2':
i = 0
check = 0
for check in listStudent:
if check['num'] == check_who:
i = 1
if i == 1:
check_num = input('请输入修改后的学号:')
# 判断学号是否重复
j = 0
for temp in listStudent:
if temp['num'] == check_num:
j = 1
else:
check['num'] = check_num
print('\033[1;34m修改成功!\033[0m')
if j == 1:
print('\033[1;31m学号重复,修改失败\033[0m')
else:
print('\033[1;31m未找到学号!\033[0m')
# 修改性别
elif check_what == '3':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
if i == 1:
check['gender'] = input('请输入修改后的性别:')
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 执行列出学生信息功能
elif key == '5':
print('\033[1;34m姓名\t 学号\t 性别\t\033[0m')
# 遍历所有学生信息并打印
for check in listStudent:
print('%s\t %s\t %s\t' % (check['name'], check['num'], check['gender']))
# 退出程序
elif key == '6':
print('\033[1;34m成功退出!\033[0m')
break
else:
print('*' * 20)
print('\033[1;31m请输入正确指令!\033[0m')
print('*' * 20)
效果图:
这次代码基本都有解释,能够一目了然,这是第一次写这种小程序,所以在做之前还是有参照的,参照文章链接python学生管理系统
改进后的代码:
print('-' * 55)
print('\033[1;31m该系统没有记忆功能,一旦退出系统,所有录入学生信息将会被清除!!!\033[0m')
print('-' * 55)
# 定义菜单
def menu():
print(
'*' * 20 + '\n'
'1.添加学生信息\n'
'2.查询学生信息\n'
'3.删除学生信息\n'
'4.修改学生信息\n'
'5.列出所有学生信息\n'
'6.学生成绩排序\n'
'7.退出系统'
)
print('*' * 20)
# 定义学生列表
listStudent = [
{'name': '花火', 'num': '123456789', 'gender': '男', 'chinese': 60, 'math': 60, 'english': 60, 'total': 120},
{'name': '火花', 'num': '987654321', 'gender': '男', 'chinese': 100, 'math': 100, 'english': 100, 'total': 300}
]
# 添加函数
def add_student():
name = input('请输入学生姓名:')
num = input('请输入学生的学号:')
gender = input('请输入学生性别:')
chinese = int(input('请输入学生语文成绩:'))
math = int(input('请输入学生数学成绩:'))
english = int(input('请输入学生英语成绩:'))
total = chinese + math + english
# 判断学号是否重复
for check in listStudent:
while check['num'] == num:
num = input('学号已被添加,请再次输入:')
continue
else:
break
# 对数据进行存储
student = {'name': name, 'num': num, 'gender': gender, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
listStudent.append(student)
print('\033[1;34m成功添加\033[0m')
# 查找函数
def query_student():
# 用户输入学号
check_num = input('请输入要查询的学生的学号:')
# 提取要求学号学生信息
i = 0
check = []
for check in listStudent:
if check['num'] == check_num:
i = 1
break
if i == 1:
print('\033[1;34m姓名:%s\n学号:%s\n性别:%s\n语文成绩:%d\n数学成绩:%d\n英语成绩:%d\n总成绩:%d\n\033[0m' % (
check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
elif i == 0:
print('\033[1;31m没有找到该学生\033[0m')
# 删除函数
def delete_student():
# 用户输入学号
check_num = input('请输入要删除的学生的学号:')
# 查找所选学生
i = 0
j = 0
for check in listStudent:
if check['num'] == check_num:
j = 1
print('\033[1;34m删除成功!\033[0m')
break
else:
i = i + 1
# 删除要求学号学生信息
if j == 1:
del listStudent[i]
else:
print('\033[1;31m未找到该学生\033[0m')
# 修改函数
def revise_student():
# 用户输入学生学号和要修改的信息
check_who = input('请输入要修改的学生学号:')
check_what = input('请输入要修改的信息:\n1.姓名 2.学号 3.性别\n4.语文 5.数学 6.英语\n')
# 修改姓名
if check_what == '1':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check['name'] = input('请输入修改后的姓名:')
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 修改学号
elif check_what == '2':
i = 0
check = 0
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check_num = input('请输入修改后的学号:')
# 判断学号是否重复
j = 0
for temp in listStudent:
if temp['num'] == check_num:
j = 1
else:
check['num'] = check_num
print('\033[1;34m修改成功!\033[0m')
if j == 1:
print('\033[1;31m学号重复,修改失败\033[0m')
else:
print('\033[1;31m未找到学号!\033[0m')
# 修改性别
elif check_what == '3':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check['gender'] = input('请输入修改后的性别:')
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 修改语文分数
elif check_what == '4':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check['chinese'] = int(input('请输入修改后的语文分数:'))
check['total'] = check['chinese'] + check['math'] + check['english']
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 修改数学分数
elif check_what == '5':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check['math'] = int(input('请输入修改后的数学分数:'))
check['total'] = check['chinese'] + check['math'] + check['english']
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 修改英语分数
elif check_what == '6':
i = 0
check = []
for check in listStudent:
if check['num'] == check_who:
i = 1
break
if i == 1:
check['english'] = int(input('请输入修改后的英语分数:'))
check['total'] = check['chinese'] + check['math'] + check['english']
print('\033[1;34m修改成功\033[0m')
else:
print('\033[1;31m没有找到该学生\033[0m')
# 列出函数
def all_student():
print('\033[1;34m姓名\t 学号\t\t\t 性别\t 语文成绩\t 数学成绩\t 英语成绩\t 总成绩\t\033[0m')
# 遍历所有学生信息并打印
for check in listStudent:
str(check['chinese'])
if check['chinese'] < 100:
print('%s\t %s\t %s\t\t %s\t\t\t %s\t\t\t %s\t\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
elif check['chinese'] == 100:
print('%s\t %s\t %s\t\t %s\t\t %s\t\t %s\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
# 排序函数
def sort_student():
# 对学生总成绩从大到小排序
sortedlist = sorted(listStudent, key=lambda s: s['total'], reverse=True)
print('\033[1;34m姓名\t 学号\t\t\t 性别\t 语文成绩\t 数学成绩\t 英语成绩\t 总成绩\t\033[0m')
for check in sortedlist:
str(check['chinese'])
if check['chinese'] < 100:
print('%s\t %s\t %s\t\t %s\t\t\t %s\t\t\t %s\t\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
elif check['chinese'] == 100:
print('%s\t %s\t %s\t\t %s\t\t %s\t\t %s\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
while True:
# 列出菜单
menu()
# 用户选择执行功能
key = input('请输入要执行的功能:')
# 执行添加功能
if key == '1':
add_student()
# 执行查询功能
elif key == '2':
query_student()
# 执行删除功能
elif key == '3':
delete_student()
# 执行修改功能
elif key == '4':
revise_student()
# 执行列出学生信息功能
elif key == '5':
all_student()
# 执行排序功能
elif key == '6':
sort_student()
# 退出程序
elif key == '7':
print('\033[1;34m成功退出!\033[0m')
break
# 菜单输入错误提示
else:
print('*' * 20)
print('\033[1;31m请输入正确指令!\033[0m')
print('*' * 20)
增加了学生语文,数学和英语分数,还有加上了根据学生成绩进行排序的功能。