黑马程序员python教程在函数学完以后有一个综合练习,此学生管理系统中有关于流程控制输出控制,主要是对于函数的控制,为后续的面向对象打好基础,本次练习也是对于封装思想的一次练习。
系统完成后的运行截图
共6个功能,输入对应的数字选择相应的功能。
class_info=[]
def print_menu():
print("-"*20)
print("学生管理系统 1.0")
print("1:添加学生")
print("2:删除学生")
print("3:修改学生")
print("4:查询学生")
print("5:显示所有学生")
print("6:退出系统")
print("-"*20)
def add_studnt():
print("欢迎使用添加功能")
global class_info
name=input("输入学生的姓名")
age=input("输入学生的年龄")
phone_num=input("输入学生的电话")
#[(),()] [{},{}]
'''
for i in class_info:
if i["name"] == name:
print(f"{name}已经存在")
return
'''
student={
'name':name,
'age':age,
'phone_num':phone_num
}
class_info.append(student)
print("添加成功")
def show_student():
print("姓名------年龄--------电话")
for i in class_info:
print(i['name'],'\t\t',i['age'],'\t\t',i['age'])
#return
#print("还没有学生,请添加学生")
def del_student():
global class_info
name=input("输入需要删除的学生姓名")
for i in class_info:
if i['name'] == name:
class_info.remove(i)
print("删除成功")
return
print("输入的学生姓名不存在")
def appdet_student():
global class_info
name = input("请输入需要修改的学生信息")
for i in class_info:
if i['name'] == name:
i['name'] = input('输入新的姓名')
i['age'] = input('输入新的年龄')
i['phone_num'] = input('输入新的电话')
print('修改成功')
return
print("该学生不存在")
def clect_student():
global class_info
name = input("输入要查找的学生姓名")
for i in class_info:
if i['name'] == name:
print("查询信息如下")
print("姓名------年龄--------电话")
print(i['name'],'\t\t',i['age'],'\t\t',i['age'])
return
print("该学生不存在")
def main():
while True:
print_menu()
choose =int(input("选择你所需要的功能"))
if choose == 1:
add_studnt()
elif choose == 2:
del_student()
elif choose == 3:
appdet_student()
elif choose == 4:
clect_student()
elif choose == 5:
show_student()
elif choose == 6:
a = input("确定要退出吗? 亲")
if a=='y' or a=='Y' or a=='yes' or a=='Yes':
break
else:
print('非法输入')
if __name__ == '__main__':
main()
此系统作为初学者的第一个稍微大一点的作业,代码量差不多在一百行左右,此系统还存在很多缺点,例如学生信息退出系统后就不存在,因为本系统采用列表存储数据,在学习过文件处理后可以将信息存储在文件中。