繁体   English   中英

python 逻辑运算符和,或在没有 if 的情况下如何工作?

[英]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

这意味着如果条件为Falsecurrent + letter ,则letter >= prev_letter and current + letter将评估为False 这个结果就是or表达式的左侧。 如果Falseor表达式将评估为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM