python ternary operator behaviour

后端 未结 3 1719
南方客
南方客 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:56

    as ternary operator is read from left to right and + has lower precedence than conditional operators. So, these two are equivalent:

    >>> 0 if True else 1 + 1 if False else 1
    0
    >>> 0 if True else ( (1 + 1) if False else 1)
    0
    

提交回复
热议问题