import random
import os
import tkinter
import tkinter.ttk
from docx import Document
columnsNumber = 4
def main(rowsNumbers=20,grade=4):
if grade < 3:
operators = '+-'
biggest = 20
elif grade <= 4:
operators = '+-×÷'
biggest = 100
elif grade == 5:
operators = '+-×÷('
biggest = 100 document = Document()
table = document.add_table(rows=rowsNumbers,cols=columnsNumber)
table.style.font.name = '宋体'
for row in range(rowsNumbers):
for col in range(columnsNumber):
first = random.randint(1,biggest)
second = random.randint(1,biggest)
operator = random.choice(operators) if operator != '(':
if operator == '-':
if first < second:
first,second = second,first
r = str(first).ljust(2,' ')+' ' + operator + str(second).ljust(2,' ') + '='
else:
third = random.randint(1,100)
while True:
o1 = random.choice(operators)
o2 = random.choice(operators)
if o1 != '(' and o2 !='(':
break
rr = random.randint(1,100)
if rr > 50:
if o2 == '-':
if second < third:
second,third = third,second
r = str(first).ljust(2,' ') + o1 +'('+str(second).ljust(2,' ')+o2+str(third).ljust(2,' ')+')='
else:
if o1 == '-':
if first < second:
first,second = second,first
r = '(' + str(first).ljust(2,' ') + o1 +str(second).ljust(2,' ')+')'+o2+str(third).ljust(2,' ')+'='
cell = table.cell(row,col)
cell.text = r
document.save('kousuan.docx') if __name__ == '__main__':
app = tkinter.Tk()
app.title('KouSuan.zWrite')
app['width'] = 300
app['height'] = 150
lableNumber = tkinter.Label(app,text='Number:',justify=tkinter.RIGHT,width=50)
lableNumber.place(x=10,y=40,width=50,height=20)
comboNumber = tkinter.ttk.Combobox(app,values=(100,200,300,400,500),width=50)
comboNumber.place(x=70,y=40,width=50,height=20) labelGrade = tkinter.Label(app,text='Grade:',justify=tkinter.RIGHT,width=50)
labelGrade.place(x=130,y=40,width=50,height=20)
comboGrade = tkinter.ttk.Combobox(app,values=(1,2,3,4,5),width=50)
comboGrade.place(x=200,y=40,width=50,height=20) def generate():
number = int(comboNumber.get())
grade = int(comboGrade.get())
main(number,grade)
buttonGenerate = tkinter.Button(app,text='=',width=40,command=generate)
buttonGenerate.place(x=130,y=90,width=40,height=30) app.mainloop()

Python_小学口算题库生成器的更多相关文章

  1. 洛谷 P1957 口算练习题

    洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...

  2. NOI题库-小学奥赛QwQ

    今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...

  3. 用Python开发小学二年级口算自动出题程序

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 武汉光谷一小二年级要求家长每天要给小孩出口算题目,让孩子练习. 根据老师出题要求编写了Python程序 ...

  4. 小学四则运算口算练习app

    目标: 第一次尝试做APP,这次做的东西不是很麻烦,做出一个口算练习的加减乘除的页面,使用者做题,设有答案页,进行核对! 核心部分是出题页面的程序,还有答案页的程序.不设置登录注册页面.冲刺时间:一周 ...

  5. 123457123456#2#----com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc22222

    com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc

  6. 《口算大作战 2》DLC:算法真奇妙

    211614331 王诚荣 211614354 陈斌 --第一次结对作业 DLC DLC:三年级混合运算模块现已更新!现在您可以愉快的使用三年级题库啦.同时您必须拥有本体才能使用此DLC 单击此处查看 ...

  7. jzyz 题库 题目选做

    题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...

  8. C# WinForm动态控件实例:口算训练

    昨天晚上回寝室看到室友正在被一个C#课的作业苦恼,作业的内容是编写一个口算训练程序,能够实现随意添加题目数量.于是,喜欢写C#的我就决定解救一下他们. 创建动态控件 既然要动态添加,那就必须使用动态控 ...

  9. Hibernate考试试题(部分题库)含答案

    Hibernate考试试题 (题库) 1.  在Hibernate中,下列说法正确的有( ABC ).[选三项] A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate对JD ...

随机推荐

  1. 【Python】Talk Python To Me Podcast播客

    这是Python相关的一个播客,通过播客的形式给大家讲述python那点事,相关的链接都会列出来,有一些是由文本内容的,如果听不太懂就看看英文原文.不fanqiang的情况下,网页打开没有问题,但是播 ...

  2. 集群通信组件Tribes之整体介绍

    接下来一系列文章会对集群通信框架tribes进行源码级别的分析,欢迎讨论. 把若干机器组合成一个集群,集群为了能协同工作,成员之间的通信是必不可少的,当然可以说这也是集群实现中重点需要解决的核心问题, ...

  3. CUDA学习,查看device性能参数

    #include "../common/book.h" #include< stdio.h> #include "cuda_runtime.h" # ...

  4. Jumpstart for Oracle Service Bus Development

    http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--097357.html Tutorial ...

  5. java 多线程和线程池

    ● 多线程 多线程的概念很好理解就是多条线程同时存在,但要用好多线程确不容易,涉及到多线程间通信,多线程共用一个资源等诸多问题. 使用多线程的优缺点: 优点: 1)适当的提高程序的执行效率(多个线程同 ...

  6. 从硬件竞争到软实力PK——电视媒体竞争观察

    本文观点及数据摘自中广研究<三网融合月度精粹>第26期(2013年2月版),详细参考对应在线简版(http://doc.sarft.net/index.php?f=2013/02/2013 ...

  7. Linux Framebuffer驱动剖析之一—软件需求

    嵌入式企鹅圈将以本文作为2015年的终结篇,以回应第一篇<Linux字符设备驱动剖析>.嵌入式企鹅圈一直专注于嵌入式Linux和物联网IOT两方面的原创技术分享,稍后会发布嵌入式企鹅圈的2 ...

  8. PowerBI开发 第十篇:R 脚本

    R是一种专门用于数据分析和统计的脚本语言,广泛应用在每一个需要统计和数据分析的领域.PowerBI支持R脚本,只不过,PowerBI Desktop默认没有安装R.在使用R脚本之前,必须向PowerB ...

  9. SNMP相关的RFC建议和链接

    1. SNMP Books or Articleshttp://www.faqs.org/faqs/snmp-faq/part1/http://www.faqs.org/faqs/snmp-faq/p ...

  10. Java不走弯路教程(6.JDBC)

    6.JDBC 在上一章,我们完成了MyDb数据库的简单的客户段调用.作为产品我们还封装了驱动程序,并且提供了统一的调用接口. 大家应该知道,市面上有多种数据库产品,比如Oracle,Mysql,DB2 ...