前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python出了3000道数学题,外甥表示要正月剪头!

用Python出了3000道数学题,外甥表示要正月剪头!

作者头像
快学Python
发布2023-03-06 14:10:09
4360
发布2023-03-06 14:10:09
举报
文章被收录于专栏:快学Python快学Python

过年期间发现小外甥已经上小学了,我姐说老师今天给他们布置了寒假作业:每天坚持做乘法和加减法混合运算。

这我必须帮帮忙,用Python写了一段自动生成小学生计算题的代码,并支持导出到Word中直接打印出来就能给小外甥写了。

生成计算题

随机生成生成计算题,那我们便需要导入random模块,用来生成随机数字,再搭配“+-*”算术符号,即可得到最终含有120道题的列表:

代码语言:javascript
复制
import random
for i in range(120):

(代码较多不再文中展示,感兴趣可以文末下载)

生成结果如下所示:

这样我们就随机生成了120道乘法和加减法混合运算计算题。

写入Word中

将列表元素写入Word文档中,我们可以参考《快学Python:自动化办公轻松实战》一书中的【5.3 Word 文档内容写入】章节内容。

代码语言:javascript
复制
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列)空格中。

在交互式环境中输入如下命令:

代码语言:javascript
复制
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道或者几万道数学题!

小外甥看了我的成果,非常开心

决定头发有些长了,必须得理个发

我这赶紧包了一个大红包,才算保住本舅舅的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生成计算题
  • 写入Word中
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档