视频加载失败

Python 基础之三元运算符

586 字
3 分钟
Python 基础之三元运算符

【一】引言#

  • 三元表达式(三目运算符)能够简洁我们的代码
    • 三元表达式其实是将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

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Profile Image of the Author
Dream
Hello, I'm Dream.
公告
欢迎来到我的博客!爱学习爱进步。
分类
标签
最新动态
站点统计
文章
300
分类
5
标签
26
总字数
640,882
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录