Python 中的三目运算

在计算机语言中,有一种叫做 三目运算 的表达式(也叫三元表达式)。主要用于处理不同条件下的变量取值,简化版的逻辑判断语句。

基本表达式如下:

变量 =  值1 if 条件 else 值2

如果条件满足,则变量取值1,否则取值2

下例中的 x 当 a > b 的时候取 a 的值,否则取 b 的值:

>>> a = 5
>>> b = 10    
>>> x = a if a > b else b     # 如果 a > b 取 a,否则取 b
>>> x                         # a 明显不大于 b,所以取 else 后面的 b
10

从键盘接收输入,如果输入不为空,变量 isinput 取值 True,否则为 False:

>>> isinput = True if input('输入:') else False
输入:x
>>> isinput
True
>>> isinput = True if input('输入:') else False
输入:                        # 直接回车,相当于接收了一个空字符串
>>> isinput
False

其他语言中的写法一般类似变量 = 条件 ? 值1:值2,条件成立则取值1,否则取值2:

n = 8>4?1:0   //取值为0

Python 中还有一种三目运算的简化写法:

变量 = 值1 or 值2

如果值1存在则变量的值为值1,否则当值1不存在(值1为None,为0,为空字符串、空列表等用布尔表达式预算为 False 的情况)则取值2
相当于:

变量 = 值1 if 值1 else 值2

例子,

>>> a = []
>>> x = a or 10
>>> x      # a 为 0,在条件中为 False
10

# 修改一下上面 input 的例子:
>>> y = input('输入:') or 'nothing'
输入:  # 直接回车,相当于输入空字符串
>>> y
'nothing'
>>> y = input('输入:') or 'nothing'
输入:hi!
>>> y
'hi!'

你可能感兴趣的:(Python 中的三目运算)