1-100算式练习题自动生成器
主界面
最近用Pyqt5编写了一个算式题自动生成器,可自动生成1-100以内的加减乘除算式题,并存储为word文档文件,可以供小孩打印练习。
主要功能
- 可自行选择数字范围,1-100以内的计算
- 可以选择自动生成的word文档页数
- 可选择算式类型,可以多选,则会生成不同类型的混合算式题
- 点击“一键生成按钮‘,即可生成2份算式题文档,一份含答案,一份不含答案
示例图片
选择数字范围:1-20,计算类型:加法与减法,然后生成算式题。
点击:“一键生成算式题”,结果如下:
生成两个word文档,一份含答案,一份不含答案。
不含答案的word文档如下:
含答案的word文档如下:
算式生成核心源码如下
def genetator(self):
res = self.init_params()
if not res:
return
# 存储不含答案的数据
data = [] # 储存题目的列表
group = [] # 中转列表
# 存储含答案的数据
res_data = []
res_group = []
while len(data) < 20 * self.page_num:
# 随机生成计算的两个数字
num1 = random.randint(self.num_min, self.num_max)
num2 = random.randint(self.num_min, self.num_max)
# 随机选择所选择的计算类型
choose_type = random.choice(self.choose_type)
if choose_type == '加法':
group.append(f"{num1} + {num2} = ") # 数据放入中转列表
res_group.append(f"{num1} + {num2} = {num1 + num2}")
elif choose_type == '减法':
if num1 >= num2:
group.append(f"{num1} - {num2} = ")
res_group.append(f"{num1} - {num2} = {num1 - num2}")
else:
group.append(f"{num2} - {num1} = ")
res_group.append(f"{num2} - {num1} = {num2 - num1}")
elif choose_type == '乘法':
group.append(f"{num1} × {num2} = ")
res_group.append(f"{num1} × {num2} = {num1 * num2}")
else:
if num1 >= num2 and num1 % num2 == 0:
# 必须能整除
group.append(f"{num1} ÷ {num2} = ")
res_group.append(f"{num1} ÷ {num2} = {num1/num2}")
if len(group) == 4: # 按四道题分一组
data.append(group) # 数据放入总列表
group = [] # 清空中转列表
res_data.append(res_group) # 含答案的数据放入总列表
res_group = [] # 清空中转列表
# 将数据保存为word文档,一份含答案,一份不含答案
self.To_word(data, self.save_path)
self.save_path_res = self.save_path.split('.docx')[0] + '(含答案).docx'
print(self.save_path_res)
self.To_word(res_data, self.save_path_res)
生成可执行的exe文件
使用pyinstaller库的以下命令就可以生成可执行的exe文件:
pyinstaller -F CallMainwin.py -n equationGenarator -w
完整代码与exe文件
感兴趣的小伙伴可以通过关注以下方式获取完整源码,大家可以共同学习交流。
关注本人下面公众号“阿旭算法与机器学习”,发送:算式生成器,即可获取下载链接。
如果内容对你有帮助,记得点赞、关注哦!也欢迎小伙伴们和我共同学习交流。
更多干货内容持续更新中......