主界面
最近用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文件
感兴趣的小伙伴可以通过关注以下方式获取完整源码,大家可以共同学习交流。






