yjg30737 / pymeg

Python mathematical expression generator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pymeg

Table of Contents

General Info

Python mathematical expression generator

Class Overview

  • AbstractExpStruct

Abstract class of ExpStruct.

This class has four constants.

AbstractExpStruct.PLUS = 0
AbstractExpStruct.MINUS = 1
AbstractExpStruct.MULTIPLY = 2
AbstractExpStruct.DIVIDE = 3
  • ExpStruct

Class which can store the rules of expression. inherits the AbstractExpStruct.

ExpStruct has methods like below.

set_op(lst) # set the operators to be used to expression to generate as AbstractExpStruct's constant. 
# For example, if you want to use only plus and minus then write like this
# expStruct.set_op([AbstractExpStruct.PLUS, AbstractExpStruct.Minus])

get_op() -> self.__op_lst # get the operators to be used as list of AbstractExpStruct's constant.

set_oper_cnt(cnt) # set the number of operands of expression to be generated.

set_range(min_, max_, types: list) # set min, max number to use of types(plus, minus ...).
  • ExpGenerator

Class which generate the randomized expression with given ExpStruct instance Using get_problem static method to generate the expression. Argument is ExpStruct. Result is string-typed mathematical expression.

problem = ExpStruct()
ExpGenerator.get_problem(problem)

Setup

python -m pip install pymeg

Example

Code Sample

from pymeg.expGenerator import ExpGenerator
from pymeg.expStruct import ExpStruct

problem = ExpStruct()
problem.set_oper_cnt(4)
problem.set_range(20, 100, [ExpStruct.PLUS, ExpStruct.MINUS])
problem.set_range(2, 10, [ExpStruct.MULTIPLY])
problem.set_range(2, 4, [ExpStruct.DIVIDE])
print(ExpGenerator.get_problem(problem))
print(ExpGenerator.get_problem(problem))
print(ExpGenerator.get_problem(problem))
ext = ExpGenerator.get_problem(problem)
print(ext)
print(eval(ext))

Result

Note: Problem will be generated randomly depending on operand count set by user.

54+25-54*9
6*6-31/3
2/4*8/3
9*3*6/2
81.0

About

Python mathematical expression generator

License:MIT License


Languages

Language:Python 100.0%