# How many parentheses can Python handle?

During my office hours today I was asked whether “an extra pair of parentheses” would do any harm to the execution of a Python program. In the case at hand the answer was “no”, but I suspected there might be actually be a limit on nested parentheses depth.

Using the following Python script (which leverages the ability of the interpreter to evaluate expressions at runtime via `eval`

), we can determine the answer is 200.
For any greater depth one receives a `SyntaxError: too many nested parentheses`

.

```
from sys import maxsize
def parens_expr(N):
s = '('*N + '1 + 2' + ')'*N
return eval(s)
max_depth = 0
for i in range(maxsize):
try:
parens_expr(i)
max_depth = i
except:
break
print(f'maximal parentheses depth: {max_depth}')
parens_expr(max_depth + 1) # to demonstrate failure
```