when I evaluate the following operation
0 if True else 1 + 1 if False else 1
it evaluates to 0 however when I write with brackets like
is actually:
(0) if (True) else ((1 + 1) if (False) else (1))
which is definitely differs from what you want:
((0) if (True) else (1)) + ((1) if (False) else (1))