为了检查录音,可笔者比较懒,不想一个一个对着。特意写了个python程序来统计。前提需要知道已完成作业的学生的编号。
安装必要的库
pip install xlrd
pip install xlwt
pip install xlutils
程序部分
首先,引入需要import的库/类
import xlrd
import xlwt
from xlutils.copy import copy
import sys
接收输入进来的学生到数组中,并且返回
def inputDone():
# 非-1持续输入
j = eval(input("请输入已完成的学生编号: "))
doneS = []
while j != -1:
doneS.append(j)
j = eval(input("请输入已完成的学生编号: "))
print("--------输入已完成学生编号完毕----------")
return doneS
标记已完成的学生
def noteDone(file, time, doneS, sheet_index=0):
workbook = xlrd.open_workbook(file)
wb = copy(workbook)
ws = wb.get_sheet(sheet_index)
for num in doneS:
ws.write(num - 1, time, "完成")
wb.save(file)
print("---------写入已完成作业完成----------")
找出未完成的学生
def findUndo(file, time, sheet_index=0):
workbook = xlrd.open_workbook(file)
sheet = workbook.sheet_by_index(sheet_index)
undo = []
for i in range(1, sheet.nrows):
cell_value = sheet.cell(i, time).value
if cell_value != '完成':
undo.append(sheet.cell(i, 0).value)
print("----------找出未完成作业的学生完毕-----------")
return undo
将未完成的学生写入sheet2
def writeUndo(file, time, undoS, sheet_index=1):
workbook = xlrd.open_workbook(file)
wb = copy(workbook)
ws = wb.get_sheet(sheet_index)
sheet = workbook.sheet_by_index(sheet_index)
row = 1
for i in range(1, sheet.nrows):
ws.write(i, time - 1, " ")
for name in undoS:
# print(name)
ws.write(row, time - 1, name)
row += 1
wb.save(file)
print("----------写入未完成作业名单完毕------------")
main函数
if __name__ == '__main__':
# 操作的文件
file = 'Excel/test.xlsx'
# 第几次作业
time = 2
# doneS = inputDone()
# 请不要输入 1
doneS = [3, 5]
if 1 in doneS:
print("1 不允许在已完成的学生编号中")
sys.exit()
print("第{}次作业已完成学生的编号: {}".format(time, doneS))
noteDone(file, time, doneS)
undo = findUndo(file, time)
print("未完成的学生: ", undo)
writeUndo(file, time, undo)
print("----> 感谢使用 <----")
这是我的项目结构,其实很简单的。
![](https://img.haomeiwen.com/i20220952/279dedd48d74401d.png)
![](https://img.haomeiwen.com/i20220952/4445ac469973e045.png)
![](https://img.haomeiwen.com/i20220952/dfc7d5bf49101635.png)
![](https://img.haomeiwen.com/i20220952/351f23da3e6df05c.png)
这里第一次作业不管哦,是之前演示的。如果你想修改第一次作业的数据,只需把main函数中的time改为1即可。
hhha,我真是一个懒惰的英语助手。
网友评论