三元运算符的语法格式一般是这样的:
布尔表达式 ? 表达式1 : 表达式2
,首先会计算布尔表达式的值,如果布尔表达式的值为 true,则返回表达式1的值,否则返回表达式2的值。Python 中没有 ?:
运算符,但是从版本 2.5 开始,加入了对三目运算符的语法支持,语法格式为:表达式1 if 布尔表达式 else 表达式2
。首先,会计算布尔表达式的值,如果值为 true,则计算表达式1的值并返回;如果值为 false,则计算表达式2的值并返回。
示例1:
>>> a, b = 10, 20
>>> min = a if a < b else b
>>> min
10
示例2:
>>> def even_or_odd(num):
... return 'even' if num % 2 == 0 else 'odd'
...
>>> even_or_odd(2)
'even'
>>> even_or_odd(3)
'odd'
示例3:
>>> def min(num1, num2):
... return num2 if num1>num2 else (num1 if num1<num2 else 'equal')
...
>>> min(5, 10)
5
>>> min(10, 5)
5
>>> min(5, 5)
'equal'