Python_小学口算题库生成器
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_小学口算题库生成器的更多相关文章
- 洛谷 P1957 口算练习题
洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...
- NOI题库-小学奥赛QwQ
今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...
- 用Python开发小学二年级口算自动出题程序
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 武汉光谷一小二年级要求家长每天要给小孩出口算题目,让孩子练习. 根据老师出题要求编写了Python程序 ...
- 小学四则运算口算练习app
目标: 第一次尝试做APP,这次做的东西不是很麻烦,做出一个口算练习的加减乘除的页面,使用者做题,设有答案页,进行核对! 核心部分是出题页面的程序,还有答案页的程序.不设置登录注册页面.冲刺时间:一周 ...
- 123457123456#2#----com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc22222
com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc
- 《口算大作战 2》DLC:算法真奇妙
211614331 王诚荣 211614354 陈斌 --第一次结对作业 DLC DLC:三年级混合运算模块现已更新!现在您可以愉快的使用三年级题库啦.同时您必须拥有本体才能使用此DLC 单击此处查看 ...
- jzyz 题库 题目选做
题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...
- C# WinForm动态控件实例:口算训练
昨天晚上回寝室看到室友正在被一个C#课的作业苦恼,作业的内容是编写一个口算训练程序,能够实现随意添加题目数量.于是,喜欢写C#的我就决定解救一下他们. 创建动态控件 既然要动态添加,那就必须使用动态控 ...
- Hibernate考试试题(部分题库)含答案
Hibernate考试试题 (题库) 1. 在Hibernate中,下列说法正确的有( ABC ).[选三项] A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate对JD ...
随机推荐
- AngularJS进阶(二十三)ANGULAR三宗罪之版本陷阱
ANGULAR三宗罪之版本陷阱 坑!碰到个大坑,前面由于绑定日期时将angular版本换为angular-1.3.0-beta.1时,后来午睡后,登录系统,发现无论如何都登陆不进去了,经过调试,发现数 ...
- 1.Linux下libevent和memcached安装
1 下载libevent-2.0.22-stable.tar.gz,下载地址是:http://libevent.org/ 2 下载memcached,下载地址是:http://memcached ...
- 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
1 下载EGIT,下载地址:http://www.eclipse.org/egit/download/ 最终的下载地址: http://www.eclipse.org/downloads/dow ...
- android 面试之listview
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能.· 1.在adapter中的g ...
- 《java入门第一季》二维数组三个案例详解
案例一:遍历二维数组 /* 需求:二维数组遍历 外循环控制的是二维数组的长度,其实就是一维数组的个数行数. 内循环控制的是一维数组的长度,每一行,一维数组元素分别的个数. */ class Array ...
- 【一天一道LeetCode】#15 3Sum
一天一道LeetCode系列 (一)题目 Given an array S of n integers, are there elements a, b, c in S such that a + b ...
- 【59】Quartz+Spring框架详解
什么是Quartz Quartz是一个作业调度系统(a job scheduling system),Quartz不但可以集成到其他的软件系统中,而且也可以独立运行的:在本文中"job sc ...
- Linux - script练习
首先HelloWorld 对谈式脚本:变量内容由使用者决定 随日期变化:利用date进行文件的创建 比较直接运行与利用source来运行脚本的区别
- how tomcat works 总结 三
第七章 日志记录器 第 7 章包括日志,该组件是用来记录错误信息和其他信息的. 这一章比较简单,类图如下: 根据名字我想大家都能猜出来三个实现类都是做什么的,一个按常规输出到控制台,一个按错误模式输出 ...
- C语言有哪些鲜为人知的特性?
译注:本文摘编自 Quora 的一个热门问答贴. 请在linux系统下测试本文中出现的代码 Andrew Weimholt 的回复: switch语句中的case 关键词可以放在if-else或者是循 ...