首页 > 解决方案 > 如果没有 if,python 逻辑运算符和或如何工作?

问题描述

网上找了这两条线后,不明白第一条线是怎么跟第二条线效果一样的

current = letter >= prev_letter and current + letter or letter

current = current + letter if letter >= prev_letter else letter

标签: pythonpython-3.x

解决方案


and表达式的结果要么是第一个假操作数,要么是第二个操作数。表达式的结果or要么是第一个真值操作数,要么是第二个操作数。第一条语句等同于:

current = (letter >= prev_letter and current + letter) or letter

这意味着如果条件是, 或,letter >= prev_letter and current + letter将计算结果。这个结果就是表达式的左侧。如果,则表达式将计算为。否则,它将保持为。FalseFalsecurrent + letterorFalseorlettercurrent + letter

但是,这两个表达式可能不等价,具体取决于变量的值。例如,假设current是 -1、1letterprev_letter0。那么and表达式的计算结果为 0。这意味着表达式的结果or将为letter1。对于这些相同的值,第二个表达式将设置current为 0。


推荐阅读