There is an inbuilt function in Python to evaluate Mathematical expressions. If you are just supposed to find the result of evaluation of given expression, use eval()
in Python.
Example:
s = "(1+(2.4/3))"
print("%.1f"%eval(s))
# Output: 1.8
If you are supposed to write mentioned functions, then you might want to think
PS: You may ask again if you need to write those functions
actually I have to write the codes for those fun.
please help
Consider this. Basically you are supposed to evaluate a sub-section of expression.
- Implement a function that takes the two arguments and returns the tuple, (number starting at i^{th} character, index).
def readNumber(expression, ind): # Expression is the mathematical expression, ind is the index
valid = "0123456789."
number = ""
while ind < len(expression) and expression[ind] in valid:
number += expression[ind]
ind += 1
return (float(number), ind)
- Implement a function that evaluates a single parenthesised sub expression.
def evalParen(expression, ind):
temp = ind
count = 1 if expression[ind] == "(" else 0
ind += 1
while ind < len(expression) and count>0:
if expression[ind] == "(":
count += 1
elif expression[ind] == ")":
count -= 1
ind += 1
return (float(eval(expression[temp:ind])), ind)
I guess this should work. If it isn’t, please let me know
1 Like
yup its working
thankyou so much