赞
踩
三元运算符也称为条件表达式,是根据条件为真或假来评估某些内容的运算符。它在2.5 版本中被添加到 Python 中。
它只是允许在单行中测试条件,替换多行 if-else,使代码紧凑。
语法 :
[on_true] if [expression] else [on_false]
- # 演示条件运算符的程序
- a, b = 10, 20
-
- # 如果 a < b 则复制 a 的最小值,否则复制 b
- min = a if a < b else b
-
- print(min)
输出:
10
- # 演示三元运算符的 Python 程序
- a, b = 10, 20
-
- # 使用元组选择一个项目 (if_test_false,if_test_true)[test] 如果 [a<b] 为真则返回 1,因此索引为 1 的元素将打印,否则如果 [a<b] 为假则返回 0,因此元素为 0 索引将打印
- print( (b, a) [a < b] )
-
- # 如果 [a < b] 为真,则使用 Dictionary 选择项目,然后打印 True 键的值,否则,如果 [a<b] 为假,则打印 False 键的值
- print({True: a, False: b} [a < b])
-
- # lambda 比上述两种方法更有效,因为在 lambda 中,我们确保只评估一个表达式,这与 tuple 和 Dictionary 不同
- print((lambda: b, lambda: a)[a < b]())
输出:
- 10
- 10
- 10
时间复杂度:O(1)
辅助空间:O(1)
- # 演示嵌套三元运算符的 Python 程序
- a, b = 10, 20
-
- print ("Both a and b are equal" if a == b else "a is greater than b"
- if a > b else "b is greater than a")
时间复杂度:O(1)
辅助空间:O(1)
上面的方法可以写成:
- # 演示嵌套三元运算符的 Python 程序
- a, b = 10, 20
-
- if a != b:
- if a > b:
- print("a is greater than b")
- else:
- print("b is greater than a")
- else:
- print("Both a and b are equal")
输出:
b is greater than a
时间复杂度:O(1)
辅助空间:O(1)
示例:在 python3 中使用三元运算符查找 2 中的较大数
- a=5
- b=7
-
- # [statement_on_True] if [condition] else [statement_on_false]
-
- print(a,"is greater") if (a>b) else print(b,"is Greater")
输出:
7 is Greater
时间复杂度:O(1)
辅助空间:O(1)
****当三元运算符不存在 时,在 2.5 之前使用的方法
在如下给出的表达式中,解释器检查表达式是否为真,然后评估 on_true,否则评估 on_false。
语法 :
- '''条件为真时,不执行表达式[on_false],返回“True and [on_true]”的值。 返回“False or [on_false]”的其他值。 请注意,“真和 x”等于 x。 “假或 x”等于 x。 '''
- [expression] and [on_true] or [on_false]
例子 :
- # 演示条件运算符的程序
- a, b = 10, 20
-
- # 如果 a 小于 b,则分配 a,否则分配 b(注意:如果 a 为 0,则它不起作用。)
- min = a < b and a or b
-
- print(min)
输出:
10
时间复杂度: O(1)
辅助空间: O(1)
注意: 此方法的唯一缺点是on_true 不能为零或 False。如果发生这种情况,将始终评估 on_false。原因是如果表达式为真,解释器将检查 on_true,如果它为零或假,这将迫使解释器检查 on_false 以给出整个表达式的最终结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。