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