Python下的三元运算符
Python下的三元运算符
【一】引言
- 三元表达式(三目运算符)能够简洁我们的代码
- 三元表达式其实是将if...else...判断语句的简化表达,代替很多
if else
- 三元表达式其实是将if...else...判断语句的简化表达,代替很多
- 和if-else一样,只有一个表达式会被执行。
- 因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行
- 在Java、C、JavaScript等语言中,他们的格式为:
返回布尔值的判断条件?为真时的结果:为假时的结果
- 但是,Python的三元表达式的写法有别于其他语言,Python的语法为
为真时的结果 if 返回布尔值的判断条件 else 为假时的结果
- 其逻辑为:
- 如果条件表达式成立或者满足则执行表达式1
- 否则执行第二个。
- 常用在设置默认值
- 例如某个值不一定存在,则判断这个值是否存在
- 不存在则给[默认值]。
【二】案例解析
【1】简单的用法
# 演示条件运算符的程序
a, b = 10, 20
# 如果 a < b 则复制 a 的最小值,否则复制 b
min = a if a < b else b
print(min)
# 10
【2】在元祖等中的用法
# 演示三元运算符的 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] )
# 10
# 如果 [a < b] 为真,则使用 Dictionary 选择项目,然后打印 True 键的值,否则,如果 [a<b] 为假,则打印 False 键的值
print({True: a, False: b} [a < b])
# 10
# lambda 比上述两种方法更有效,因为在 lambda 中,我们确保只评估一个表达式,这与 tuple 和 Dictionary 不同
print((lambda: b, lambda: a)[a < b]())
# 10
【三】三元运算符中的嵌套
# 演示嵌套三元运算符的 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")
# 演示嵌套三元运算符的 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
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17449338.html