Python 教程之运算符(4)—— Python中的三元运算符

简介: Python 教程之运算符(4)—— Python中的三元运算符

三元运算符也称为条件表达式,是根据条件为真或假来评估某些内容的运算符。它在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
  • 使用元组、字典和 lambda 的直接方法

# 演示三元运算符的 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)

  • 三元运算符可以写成嵌套的 if-else:

# 演示嵌套三元运算符的 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)

  • 要在三元运算符中使用打印功能,例如:-

示例:在 3 中使用三元运算符查找 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)

要点:

  • 首先评估给定条件 (a < b),然后根据条件返回的布尔值返回 a 或 b
  • 运算符中参数的顺序与其他语言(如 C/C++)不同。
  • 在所有 Python 操作中,条件表达式的优先级最低。

****当三元运算符不存在 时,在 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 以给出整个表达式的最终结果。

目录
相关文章
|
5天前
|
测试技术 PHP 索引
CANopen for Python 使用教程(二)
CANopen for Python 使用教程(二)
20 5
|
5天前
|
XML 编解码 数据可视化
MoJoCo 入门教程(六)Python LQR 教程
MoJoCo 入门教程(六)Python LQR 教程
7 2
MoJoCo 入门教程(六)Python LQR 教程
|
7天前
|
区块链 Python
最详细Python打包exe教程,并修改图标,只需30秒
最详细Python打包exe教程,并修改图标,只需30秒
20 4
最详细Python打包exe教程,并修改图标,只需30秒
|
2天前
|
XML 程序员 数据格式
豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
Python 是活力四射的语言,是不断发展中的语言。就连使用 Python 多年的行者也不敢说对 Python 的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。 今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解书籍,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书,笔者试图将优化后的学习体验,通过故事的方式传达给读者。对于零基础的小白来说更建议入门后再来品读。
|
4天前
|
Python
二:《Python基础语法汇总》— 输入与输出&运算符
【8月更文挑战第16天】本篇文章详细讲述了关于输入输出函数的语法及占位符;转义字符和运算符的使用,并附上详细的代码示例
7 2
|
4天前
|
Linux iOS开发 MacOS
|
5天前
|
索引 Python
Python openpyxl使用教程
Python openpyxl使用教程
7 0
|
7天前
|
Python
Day 6/100:Python运算符
Day 6/100:Python运算符
15 0
|
3月前
|
Python 索引 C语言
Python3从零基础到入门(2)—— 运算符-3
Python3从零基础到入门(2)—— 运算符
|
算法 安全 小程序
牛客网Python入门103题练习|(05--运算符(2))
牛客网Python入门103题练习|(05--运算符(2))
179 2