mymodule:
def page():
"""
输出界面
:return:
"""
print('=' * 88, '\n❀❀欢迎来到LOL小学生管理系统:\n')
dict1 = {' 💗 1.': '添加学生', ' 💗 2.': '查看学生',
' 💗 3.': '修改学生信息', ' 💗 4.': '删除学生',
' 💗 5.': '返回', ' 💗 6.': '退出'}
for key in dict1:
print(key, dict1[key])
print('=' * 88)
def add_student():
"""
添加学生信息
:return:
"""
global stu_id
dict0 = {'学号': next(stu_id)}
value = input('请输入学生姓名:')
dict0['姓名'] = value
value = input('请输入学生年龄:')
dict0['年龄'] = value
value = input('请输入学生电话:')
dict0['电话'] = value
return dict0
def get_students_id():
"""
生成学生学号
:return:
"""
id = 1
while 1:
# str1.zfill(n) - 将str1返回为长度n的新字符串,以原字符串右对齐,前面填充0。
yield 'stu' + str(id).zfill(3)
id += 1
def tian_jia():
"""
添加学生
:return:
"""
global i
dict0 = add_student()
all_students.append(dict0) # 防止越界,扩展列表长度
all_students[i] = dict0 # 防止被覆盖
i += 1
print('🐕'*16, end='')
print("""
❀❀添加成功!❀❀
💗 1. 继续
💗 2. 返回
❀❀请选择(1-2):❀❀""")
print('🐕'*16)
while 1:
n = input()
if n == '2':
bool3 = False
return bool3
elif n == '1':
bool3 = True
return bool3
else:
print('请输入1-2内的数字。\n1. 继续\n2. 返回')
continue
def find_student(str1, n):
"""
在学生总表中查找包含{str1,n}的学生
:param n: 输入的查找内容
:param str1: 查找的关键字
:return:下标列表 or -1
"""
index_list = []
for index in range(len(all_students)):
if n == all_students[index][str1]: # 找到相应位置
index_list.append(index)
return index_list
def show_find_student(index_list: list):
"""
打印查询到的所有学生,并编号
:return:
"""
print('符合条件的学生信息为:')
print('=' * 32)
for index in range(len(index_list)):
print(str(index+1) + ' ', end='')
for key in all_students[index_list[index]]:
print(key + ':' + all_students[index_list[index]][key], end=' ')
print()
print('=' * 32)
def look_over(str1, n):
"""
在学生总表中查找并打印出包含{str1,n}的学生
:param n:输入的查找内容
:param str1:查找的关键字
:return:
"""
print('学生信息如下:')
print('=' * 32)
for index in range(len(all_students)):
if n == all_students[index][str1]: # 找到相应位置
for key in all_students[index]:
print(key + ':' + all_students[index][key], end=' ')
print()
print('=' * 32)
def cha_kan():
"""
查看学生
:return:
"""
while 1:
print('🐱' * 16, end='')
print("""
💗 1.查看所有学生
💗 2.按姓名查找
💗 3.按学号查找
💗 4.返回
❀❀请选择(1-4):❀❀""")
print('🐱' * 16)
n = input()
if n == '4':
break
elif n == '1':
print('所有学生信息如下:')
print('=' * 32)
show_all()
print('=' * 32)
continue
elif n == '2':
n = input('请输入要查找的学生姓名:')
str1 = '姓名'
value = len(find_student(str1, n))
if value != 0:
look_over(str1, n) # 注意自变量
else:
print('查无此人!请核对输入信息!!')
continue
elif n == '3':
n = input('请输入要查找的学生的学号:')
str1 = '学号'
value = len(find_student(str1, n))
if value != 0:
look_over(str1, n) # 注意自变量
else:
print('查无此人!请核对输入信息!!')
continue
else:
print('请输入1-4内的数字。')
continue
def revise_student(index, index_list):
"""
依据不同的i值(编号)修改不同的学生
:param index: 需要修改的学生编号
:return:
"""
while 1:
print('🐘'*22, end='')
print("""
请选择要修改的信息:
💗 1.修改学号
💗 2.修改姓名
💗 3.修改年龄
💗 4.修改电话
💗 5.修改下一个学生
💗 6.退出修改
❀❀请选择(1-6):❀❀""")
print('🐘' * 22)
n = input()
if n == '5':
break
elif n == '6':
bool2 = False
return bool2
elif n == '1':
n2 = input('请输入修改后的学号:')
str1 = '学号'
revise_student1(index_list[index], str1, n2)
continue
elif n == '2':
n2 = input('请输入修改后的姓名:')
str1 = '姓名'
revise_student1(index_list[index], str1, n2)
continue
elif n == '3':
n2 = input('请输入修改后的年龄:')
str1 = '年龄'
revise_student1(index_list[index], str1, n2)
continue
elif n == '4':
n2 = input('请输入修改后的电话:')
str1 = '电话'
revise_student1(index_list[index], str1, n2)
continue
else:
print('请输入1-6内的数字。')
continue
def revise_student1(index, str1, n2):
"""
在学生总表中找到下标为index的学生字典,并将key为str1的值改为n2
:param index:
:param n2:
:param str1:
:return:
"""
all_students[index][str1] = n2
print("修改成功!修改后的信息为:")
print('=' * 32)
for key in all_students[index]:
print(key + ':' + all_students[index][key], end=' ')
print()
print('=' * 32)
def xiu_gai():
"""修改学生"""
bool2 = True
while bool2:
print('🐖'*16, end='')
print("""
💗 1.按学号修改
💗 2.按姓名修改
💗 3.返回
❀❀请选择(1-3):❀❀""")
print('🐖' * 16)
n = input()
if n == '3':
break
elif n == '1':
n1 = input('请输入要修改学生的学号:') # 学号只有一个
index_list = find_student('学号', n1) # 找出需要修改的字典
#print(index_list)
if len(index_list) != 0:
show_find_student(index_list)
revise_student(0, index_list)
else:
print('查无此人!请核对输入信息!!')
continue
elif n == '2':
n1 = input('请输入要修改学生的姓名:')
index_list = find_student('姓名', n1)
# print(index_list)
if len(index_list) != 0:
show_find_student(index_list)
n2 = int(input('请选择要修改学生的编号:'))-1
revise_student(n2, index_list)
else:
print('查无此人!请核对输入信息!!')
continue
def delete_student():
"""
删除学生
:return:
"""
while 1:
print('🐮' * 16, end='')
print("""
💗 1.按学号删除
💗 2.按姓名删除
💗 3.返回
❀❀请选择(1-3):❀❀""")
print('🐮' * 16)
n = input()
if n == '1':
n1 = input('请输入要删除学生的学号:')
str1 = '学号'
index_list = find_student(str1, n1)
if len(index_list) != 0:
show_find_student(index_list)
print('🐍'*16, end='')
print("""
请确认是否删除:
💗 1.确认删除
💗 2.返回上一层
❀❀请选择(1-2)❀❀""")
print('🐍' * 16)
n3 = input()
if n3 == '1':
n2 = int(input('请输入要删除学生的编号:')) - 1
all_students.pop(index_list[n2])
print('=====删除成功!请继续=====')
global i
i -= 1
continue
else:
continue
else:
print('查无此人!请核对输入信息!!')
continue
elif n == '2':
n1 = input('请输入要删除学生的姓名:')
str1 = '姓名'
index_list = find_student(str1, n1)
if len(index_list) != 0:
show_find_student(index_list)
print('🐍' * 16, end='')
print("""
请确认是否删除:
💗 1.确认删除
💗 2.返回上一层
❀❀请选择(1-2)❀❀""")
print('🐍' * 16)
n3 = input()
if n3 == '1':
n2 = int(input('请输入要删除学生的编号:')) - 1
all_students.pop(index_list[n2])
print('=====删除成功!请继续=====')
i -= 1
continue
else:
continue
else:
print('查无此人!请核对输入信息!!')
continue
elif n == '3':
break
else:
print('请输入1-2内的数字。')
continue
def show_all():
"""
打印所有学生信息
:return:
"""
for index in range(len(all_students)):
for key in all_students[index]:
print(key + ':' + all_students[index][key], end=' ') # 空格隔开
print() # 每输出一个换行
all_students = []
stu_id = get_students_id()
i = 0
程序:
import mymodule
bool1 = True
while bool1:
# show_all()
mymodule.page()
choice = input('请选择(1-6):')
if choice == '5':
continue
elif choice == '6':
print('谢谢使用,欢迎下次再来!')
break
elif choice == '1':
bool3 = True
while bool3:
bool3 = mymodule.tian_jia()
elif choice == '2':
mymodule.cha_kan()
elif choice == '3':
mymodule.xiu_gai()
elif choice == '4':
mymodule.delete_student()
else:
print('请输入1-5内的数字。')
continue
网友评论