[英]While loop and logical operators in Python - how does it work?
[英]How do the python logical operators and, or work without if?
网上找了这两条线后,不明白第一条线是怎么跟第二条线效果一样的
current = letter >= prev_letter and current + letter or letter
current = current + letter if letter >= prev_letter else letter
and
表达式的结果要么是第一个假操作数,要么是第二个操作数。 or
表达式的结果要么是第一个真值操作数,要么是第二个操作数。 第一条语句等同于:
current = (letter >= prev_letter and current + letter) or letter
这意味着如果条件为False
或current + letter
,则letter >= prev_letter and current + letter
将评估为False
。 这个结果就是or
表达式的左侧。 如果False
, or
表达式将评估为letter
。 否则,它将保持为current + letter
。
但是,这两个表达式可能不等价,具体取决于变量的值。 例如,假设current
为 -1, letter
为 1, prev_letter
为 0。那么and
表达式的计算结果为 0。这意味着or
表达式的结果将为letter
,即 1。对于这些相同的值,第二个表达式将current
设置为 0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.