代码附上:
"""
此项目使用 【pandas】Excel管理模块,【xlwings】Excel管理模块,【OS】系统命令模块
"""
import pandas as pd
import xlwings as xw
import os
id = [] # 定义学号列表
name = [] # 定义姓名列表
fenshu = [] # 定义分数列表
"""
使用OS模块判断文件是否存在,不存在就新建一个
"""
wenjian = os.path.exists('stuapp.xlsx')
if wenjian == False:
app = xw.Book()
app.save('./stuapp.xlsx')
app.close()
else:
print("读取文件成功!")
#定义menu函数作为菜单
def menu():
print('='*20)
print('学生成绩管理系统命令行最终版')
print('1.添加学生成绩')
print('2.删除学生成绩')
print("3.查看所有学生成绩")
print('4.通过学号搜索学生')
print('5.修改学生信息')
print("0.退出程序")
print('=' * 20)
xuanze = input("请选择:")
if xuanze == '1':
addstu()
if xuanze == '0':
exit()
if xuanze == '3':
allstr()
if xuanze == '2':
delstu()
if xuanze == '4':
search()
if xuanze == '5':
xiugai()
#定义读取函数
def read():
liebiao = pd.read_excel('./stuapp.xlsx') #使用pandas模块读取文件内容
try: #使用for循环读取进列表
for i in liebiao['学号']:
id.append(i)
for i in liebiao['姓名']:
name.append(i)
for i in liebiao['分数']:
fenshu.append(i)
except: #如果列表内无索引(无内容)则跳过读取
if KeyError:
pass
#定义储存函数
def save():
liebiao = pd.DataFrame()
liebiao['学号'] = id # 二元数据学号列展示id这个列表
liebiao['姓名'] = name
liebiao['分数'] = fenshu
print(liebiao) # 打印到屏幕上
liebiao.to_excel('./stuapp.xlsx') #通过pandas to_excel方法将列表文件储存到文件内
#定义展示所有列表函数
def allstr():
liebiao = pd.DataFrame()
liebiao['学号'] = id # 二元数据学号列展示id这个列表
liebiao['姓名'] = name
liebiao['分数'] = fenshu
print(liebiao)
#定义添加数据函数
def addstu():
while True: # 使用while循环无限循环
liebiao = pd.DataFrame() # 使用pd模块定义二元数据
a1 = input("请输入学号:") # 用户输入
try:
int(a1)
except ValueError:
print('学号必须为数字!')
continue
if int(a1) in id:
print('该学号已经录入信息!')
continue
else:
a2 = input("请输入姓名:")
a3 = input("请输入分数:")
id.append(int(a1)) # 把用户输入的内容添加进相对应的列表
name.append(a2)
fenshu.append(a3)
save()
xuanze = input("是否继续输入?(y/n):")
if xuanze == 'y':
continue
else:
break
#定义删除函数
def delstu():
while True:
print(id)
allstr()
delid = int(input("请输入要删除的学生的学号:"))
try:
aaa = id.index(delid)
int(aaa)
del id[aaa]
del name[aaa]
del fenshu[aaa]
except ValueError:
print('未找到该学生!')
xuanze = input("继续or退出?[y/n]:")
if xuanze == 'n':
allstr()
save()
break
if xuanze == 'y':
continue
#定义搜索函数
def search():
while True:
try:
search1 = int(input("请输入学号:"))
a = id.index(search1)
int(a)
jieguo = {'学号':id[a],'姓名':name[a],'分数':fenshu[a]}
print(jieguo)
except ValueError:
print('未找到该学生')
xuanze = input("是否继续?[y/n]:")
if xuanze == 'y':
continue
if xuanze == 'n':
break
#定义修改函数
def xiugai():
while 1:
try:
a = int(input('请输入要修改的学生学号:'))
b = id.index(a)
except ValueError:
print('未找到该学生信息')
break
int(b)
c = {'学号': id[b], '姓名': name[b], '分数': fenshu[b]}
d = id.index(a)
print(c)
xiugaiid = input("请输入修改后的学号:")
if int(xiugaiid) == id[int(d)]:
try:
int(xiugaiid)
except ValueError:
print('请输入数字!')
break
xiugainame = input("请输入修改后的名字:")
xiugaifenshu = input('请输入修改后的分数:')
id[b] = int(xiugaiid)
name[b] = xiugainame
fenshu[b] = xiugaifenshu
d = {'学号': id[b], '姓名': name[b], '分数': fenshu[b]}
print(d)
save()
xuanze = input("是否继续修改?【y/n】:")
if xuanze == 'y':
continue
else:
break
if int(xiugaiid) in id:
print('该学号已经录入信息!')
break
#总程序main
def main():
read()
while True:
menu()
if __name__ == '__main__':
main()