简   介

这里     小朋友假期作业有一项是每天做50道题的口算。之前的题目做完了,网上看到的习题集又木有合适的,再不然就是电子版本无法下载的,心想还是自己动手丰衣足食吧。

01 重点和难点

1F

安装docx模块

docx模块封装可以操作Microsoft Word文件所需要的工具。似乎该模块只可以在Windows环境下使用,而不可以在Mac OS环境下使用。安装该模块很简单。只需要在命令行模式下执行如下命令:

pipinstallpython-docx

网站:http://python-docx.readthedocs.io/en/latest/user/install.html#install

2F

分清几个概念

要想使用docx模块,需要分清word文件的组织结构。docx模块中document对象对应于word文件,paragraph对象对应于word文件中段落,run对象对应于段落中的一段一段文字。此外,和word文件中段落属于同一个级别的还有表格table对象。

02 程序代码

这段程序代码生成了一个包含25页计算题的word文件,每一页计算题包括100道加减题目。具体的看代码,里面有注释。

注:把文件拷贝到pycharm编辑器或者其他编辑器中,代码会变得容易读一些。

#!/usr/bin/python3#  -*- coding: utf-8 -*-import docximport randomfrom docx.enum.textimport WD_PARAGRAPH_ALIGNMENTfrom docx.sharedimport *from docx.oxml.nsimport qn'''#docx模块官方网站,可查询模块和函数用法http://python-docx.readthedocs.io/en/latest/'''#定义生成的页数NUMOFPAGE=25#生成一个word对象filefile=docx.Document()#设置页面的左右边界for sectionin file.sections:    section.left_margin=Inches(0.8)    section.right_margin = Inches(0.8)#k循环用于产生对应页数for kin range(NUMOFPAGE):#增加每一页的标题    para = file.add_paragraph()    run = para.add_run("100题tt日期:tt错题数:tt")#下面两行用于设置字体和字号    run.font.name =u"宋体"    run._element.rPr.rFonts.set(qn('w:eastAsia'), u"宋体")    run.font.size = Pt(15)    para.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT#生成一个20行*5列的表格,每一个单元格中放一个问题等式。表格的作用主要用于排版    table = file.add_table(rows=20, cols=5)    table.style.font.name ="Arial"    table.style.font.size = Pt(12)for iin range(20):for jin range(5):#随机生成一个等式,在这里借用了第一个数op1来决定加减符号            op1=int(random.randint(1,99))            op2=int(random.randint(1,99))            op="+" if op1%2==0 else "-"            if op=="+":                run=table.cell(i,j).paragraphs[0].add_run(str(op1)+op+str(op2)+"=")                run.font.size=Pt(14)                table.cell(i,j).paragraphs[0].alignment=WD_PARAGRAPH_ALIGNMENT.LEFTelse:if op1>op2:                    run = table.cell(i, j).paragraphs[0].add_run(str(op1) + op +str(op2) +"=")                    run.font.size = Pt(14)else:                    run = table.cell(i, j).paragraphs[0].add_run(str(op2) + op +str(op1) +"=")                    run.font.size = Pt(14)    file.add_page_break()#保存文件file.save("D:\math.docx")

生成的文件如下:

python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件相关推荐

  1. python建立题库随机抽题,用Python读取Excel题库随机组成Word版本试卷

    Excel题目类型有单选.多选.判断,其中多选题最多包含6个选项,判断题只有两个选项(A:正确,B:错误) 此程序将随机抽取单选题20题,多选题10题,判断题20题,组成一张试卷. 运行程序后,将得到 ...

  2. python 自动补全函数括号_Python学习笔记(二)

    1.0 Python是一种怎样的语言 Python是一门跨平台.开源.免费的解释型高级动态编程语言,支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度,支持使用py2exe.pyins ...

  3. 用python画颗爱心祝生日快乐_Python 一键生成漂亮的生日快乐词云!

    前段时间写了几篇关于生成词云的文章,其中包括: 等等,但是这几篇文章的转化对象都必须是多词汇组成的,也就是说他们生成词云的条件是词组必须够多,只有一两个词的话无法生成完整词云. 最近遇到许多朋友有特殊 ...

  4. python自动批量发邮件脚本_Python实现自动发送邮件功能

    简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件.Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器 ...

  5. python依据模板生成word文档_python自动化生成word文件,word格式套用创造模板

    # coding=gbk from docx import Document # 导入docx模块 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT ...

  6. python三方库打包项目中_python项目生成及导入依赖的第三方库

    mac下的应用程序发布 及 打包(Python写的脚本,可打包第三方库) 其实这个问题在网上能搜到大把的解决方案.大家的统一答案都是 otool -L yourapp.app/Contents/Mac ...

  7. 如何用python生成可执行程序必须经过_python怎么生成可执行文件

    .py文件:对于开源项目或62616964757a686964616fe58685e5aeb931333363393664者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的 ...

  8. python自动刷抖音视频_python+adb实现自动刷抖音视频

    安装adb和驱动 python代码实现 效果展现 安装adb和驱动 adb下载链接:https://pan.baidu.com/s/1nvhgoOMzPkxqhzLjfkuaTQ 提取码:23a7 a ...

  9. python自动点击网页按钮_Python+Selenium使用(二)- 自动点击下一页

    继续上一篇: 橘猫吃不胖:Python+Selenium使用(一)​zhuanlan.zhihu.com 上一篇,获取了百度搜索后的结果页面,但是搜索结果又很多页,这里就获取下一页按钮,并点击它. 现 ...

最新文章

  1. 不要让中国孩子买的玩具都变成外国货!
  2. [luoguP1640] [SCOI2010]连续攻击游戏(二分图最大匹配)
  3. 21丨容器化守护进程的意义:DaemonSet
  4. leetcode 617. Merge Two Binary Trees | 617. 合并二叉树(Java)
  5. 2019.01.26【NOIP普及组】模拟赛C组总结
  6. 这款神秘的移动端OCR引擎,如何做到“所见即所得”?
  7. 19软件班专业英语学期总结
  8. 第三章EF的基本使用 EF添加数据实体模型
  9. 在XML drawable中引用自定义颜色
  10. php.ini 设置内存,php.ini怎么进行内存设置
  11. 如何用html制作彩虹,使用transform和arc方法,怎么绘制彩虹效果。
  12. 制作网页头部用html,HTML网页头部代码实例详解_HTML/Xhtml_网页制作
  13. 旅游产品分析:要出发周边游
  14. python七巧板拼图代码_为什么代码都是用英文来写的,将来会有用中文写代码的那天吗?...
  15. nodepad++之jsonviewer插件
  16. 提高网络营销的转化只需掌握这四步
  17. SLA,SLO和SLI工程师指南
  18. html video标签canplay,HTML oncanplay事件用法及代码示例
  19. linux工作中软件运行安装常见问题
  20. 2022年商标注册需要多长时间?

热门文章

  1. 单片机串口发送数据很慢?这种方法帮助你提高!
  2. 【第三期】那些设计漂亮、有创意的电路板!
  3. 光谱分析软件_利用Tracker软件分析太阳光谱中辐射强度与波长的关系
  4. android复位机器人图片,安卓(Android)新图标!小绿机器人换脸啦
  5. 搞怪的html代码,这个恶搞网页代码是肿么写出来的?
  6. vue 声明周期函数_Vue_生命周期函数
  7. html去除分页符,Word如何取消分页符
  8. python求和函数1到100_Python定义函数实现累计求和操作
  9. 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)...
  10. 第二课 android项目结构