python ternary operator behaviour

后端 未结 3 1720
南方客
南方客 2020-12-12 04:50

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

3条回答
  •  旧时难觅i
    2020-12-12 05:41

    0 if True else 1 + 1 if False else 1
    

    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))
    

提交回复
热议问题