过年期间发现小外甥已经上小学了,我姐说老师今天给他们布置了寒假作业:每天坚持做乘法和加减法混合运算。
这我必须帮帮忙,用Python写了一段自动生成小学生计算题的代码,并支持导出到Word中直接打印出来就能给小外甥写了。
随机生成生成计算题,那我们便需要导入random
模块,用来生成随机数字,再搭配“+-*”算术符号,即可得到最终含有120道题的列表:
import random
for i in range(120):
(代码较多不再文中展示,感兴趣可以文末下载)
生成结果如下所示:
这样我们就随机生成了120道乘法和加减法混合运算计算题。
将列表元素写入Word文档中,我们可以参考《快学Python:自动化办公轻松实战》一书中的【5.3 Word 文档内容写入】章节内容。
from docx import Document
doc = Document() # 创建文档
table = doc.add_table(rows=40,cols=3)
table.style = "Table Grid"
doc.save("添加表格.docx")
打开生成的"添加表格.docx"文档:
可以看到我们新建了一个Word文档,并调用文档对象的add_table()
方法在其中写入了40行x3列的表格。
而我们接下来要做的就是将前文随机生成的120道数学题,填入Word的120个(40行x3列)空格中。
在交互式环境中输入如下命令:
n = 0
for texts in data_all:
rows = int(n//3)
columns = n%3
print(rows,columns)
table.cell(rows,columns).text = texts
n += 1
打开生成的"数学题.docx"文档:
如上图所示,我们成功随机生成了120道小学生计算题,并将其写入到Word文档中。
而我们再加一个for循环的话,就可以生成更多的数学题,创建更多的Word文档。那我们就可以给小外甥出3000道或者几万道数学题!
小外甥看了我的成果,非常开心
决定头发有些长了,必须得理个发
我这赶紧包了一个大红包,才算保住本舅舅的