-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctionParser.py
36 lines (32 loc) · 922 Bytes
/
functionParser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!usr/bin/env python
from math import sin, asin, cos, acos, atan, tan, factorial
def parse(function, t_value):
replaces = {
"sen(":"sin(",
"arcsen(":"asin(",
"arccos(":"acos(",
"tg(":"tan(",
"arctg(":"atan(",
}
model = "result=function"
model = model.replace("function",function)
model = model.replace("T",t_value)
for old, new in replaces:
model = model.replace(old, new)
model = parse_factorial(model)
exec model
return result
def parse_factorial(function):
while function.find("!") > -1:
value = find_factorial(function, factorial)
old = "value!"
old = old.replace("value",value)
f_factorial = "factorial(value)"
f_factorial = f_factorial.replace("value",value)
function = function.replace(old,f_factorial)
return function
def find_factorial(function, factorial_index):
value = function[0,factorial_index-1]
while !value.isnumeric():
value = value[1:]
return value