Python3中的布尔表达式与三元表达式

布尔表达式

在python中,布尔表达式和c语言以及其他语言不同(不是使用&&、||和!这样的符号),用的是and、or以及not这样的单词。

X and Y  #逻辑与运算,若X和Y都为真,则真。

X or Y  #逻辑或,若X或Y为真,则真。

not X  #若X为假,则真。

 

另外,python的布尔表达式返回的值是对象,而不是True或False。

1 or 2 , [] or 2 , 2 or {} , [] or {}  #返回从左至右第一个非空对象,如果全为空,则返回最后一个空对象,既(1,2,2,{})。这通常称为短路计算。

1 and 2 , [] and 2 , 2 and {} , [] and {}  #返回从左至右第一个空对象,如果全为非空对象,则返回最后一个非空对象,既(2,[],{},[])

 

三元表达式

A = Y if X else Z

由于python中布尔表达式返回对象,所以也可以用布尔表达式代替三元表达式。

A = ((X and Y ) or Z)

也可以通过列表和bool函数来达到这个目的。bool函数会根据参数真假返回1或0。

A = [Y , Z][bool(X)]

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注