自动生成四则运算题目(python实现)
项目分析
项目仓库: 地址
需求
仅包含四则运算
结果不能为负数
数字大小在 100 以内
支持真分数运算
设计实现过程及代码说明
项目文件结构如下:
模块
功能
main.py
主函数(表达式生成, 表达式的求解)
mainTest.py
测试函数(单元测试)
1. 分析与设计
本设计设计栈的使用, 逆波兰表达式(后缀表达式)
表达式式生成
仔细分析有如下特点:
运算符的个数比运算数少一个
被除数不能为 0
具体实现步骤
利用 Python 的字符串来存储表达式
随机生成一个运算数
再随机选择一个四则运算符
重复步骤 1 和 2
为了美观和操作方便, 表达式中运算符和运算数使用空格隔开
求解表达式
将中缀表达式转换为后缀表达式, 再进行求值
具体代码实现
表达式生成代码
def makeFormula(upperLimit=100, fraction=False) -> str:
if fraction:
upperLimit = 20
count = randint(4, 8)
else:
count = randint(1, 3)
build = ""
number1 = randint(1, upperLimit)
build += str(number1)
for i in range(count):
if fraction and (i+1) %