和Python中的技巧

The*_*m05 2 python-2.7

"和 - 或"伎俩的目的是什么?

>>> a = ""

>>> b = "second"

>>> 1 and a or b

'second'
Run Code Online (Sandbox Code Playgroud)

Jef*_*ado 6

它只是一种模仿C语言系列中的条件运算符(又称"三元"运算符)的方法.在过去,没有直接的等效表达.以下表达式有些相同:

# in python
a and b or c
Run Code Online (Sandbox Code Playgroud)
// in C
a ? b : c
Run Code Online (Sandbox Code Playgroud)

不要使用它.由于Python的语义,如果b是假的,表达式将评估为c.

从Python 2.5(PEP 308)开始,它们为此构造提供了正确的语法.

b if a else c
Run Code Online (Sandbox Code Playgroud)