当前位置:   article > 正文

python三元运算符

python三元运算符

:以前没在python中用过三元运算符,今天使用?:提示错误,故而google了一下

在c/c++等语言中,三元运算符一般为如下使用形式:

判定条件?为真时的结果:为假时的结果
 
r = 5 > 1 ? 1 : 0

但是,在python2.5以前版本,是没有三元运算符的,在2.5版本中加入了三元运算,但是并不是一个符号,而是

为真时的结果 if 判定条件 else 为假时的结果  
r = 1 if 5 > 1 else 0

在python 2.5以前,一般使用 and-or 来模拟三元运算符,如下:


判定条件 and 为真时的结果 or 为真时的结果
r = 5>1 and 1 or 0
但是当结果为字符串时会出现一个问题:


r = 5>1 and '' or 's'

返回将是‘s’


因为‘’的布尔求值结果为False,因此返回为‘s’


为避免这一状况,一般写为:

r = (5>1 and [''] or ['s'])[0]

参考: http://woodpecker.org.cn/diveintopython/power_of_introspection/and_or.html#d0e10128  例4.19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/876047
推荐阅读
相关标签
  

闽ICP备14008679号