【Pyqt实战】1-100算式练习题自动生成器(含UI界面,python代码),可自行选择参数

简介: 【Pyqt实战】1-100算式练习题自动生成器(含UI界面,python代码),可自行选择参数

主界面

ef2ee02254f448de82ff892d588caf50.png

最近用Pyqt5编写了一个算式题自动生成器,可自动生成1-100以内的加减乘除算式题,并存储为word文档文件,可以供小孩打印练习。


主要功能


  1. 可自行选择数字范围,1-100以内的计算


  1. 可以选择自动生成的word文档页数


  1. 可选择算式类型,可以多选,则会生成不同类型的混合算式题


  1. 点击“一键生成按钮‘,即可生成2份算式题文档,一份含答案,一份不含答案


示例图片


选择数字范围:1-20,计算类型:加法与减法,然后生成算式题。


d4c3319e49a844afadb89e0fc9392247.png


点击:“一键生成算式题”,结果如下:


c7c235fc2cae4345b09a73181e42be44.png


生成两个word文档,一份含答案,一份不含答案。


66ea8bed9b674908b92d476b3466b5fc.jpg


不含答案的word文档如下:


85bfe07e0ad44072a069354c960f43e3.png


含答案的word文档如下:


1e23de9b1fff4718b7cf9505f16fd0fa.png

算式生成核心源码如下


    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


64d176d2ee9f4060b9243527d2b2ec67.png

完整代码与exe文件


感兴趣的小伙伴可以通过关注以下方式获取完整源码,大家可以共同学习交流。

相关文章
|
7月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
839 7
|
7月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
7月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
364 100
|
7月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
542 95
|
7月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
387 88
|
7月前
|
存储 分布式计算 测试技术
Python学习之旅:从基础到实战第三章
总体来说,第三章是Python学习路程中的一个重要里程碑,它不仅加深了对基础概念的理解,还引入了更多高级特性,为后续的深入学习和实际应用打下坚实的基础。通过这一章的学习,读者应该能够更好地理解Python编程的核心概念,并准备好应对更复杂的编程挑战。
210 12
|
7月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
7月前
|
存储 数据采集 监控
Python文件操作全攻略:从基础到高级实战
本文系统讲解Python文件操作核心技巧,涵盖基础读写、指针控制、异常处理及大文件分块处理等实战场景。结合日志分析、CSV清洗等案例,助你高效掌握文本与二进制文件处理,提升程序健壮性与开发效率。(238字)
579 1
|
7月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
1225 1
|
7月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
686 0

推荐镜像

更多