Python入门教程之三元运算符的使用详解

 更新时间:2022年09月08日 15:55:34   作者:海拥  
三元运算符也称为条件表达式,是根据条件为真或假来评估某些内容的运算符。它在2.5 版本中被添加到 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)

在三元运算符中使用打印功能

例如:

示例:在 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)

要点

  • 首先评估给定条件 (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 以给出整个表达式的最终结果。

到此这篇关于Python入门教程之三元运算符的使用详解的文章就介绍到这了,更多相关Python三元运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • django自带的server 让外网主机访问方法

    django自带的server 让外网主机访问方法

    今天小编就为大家分享一篇django自带的server 让外网主机访问方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python画图的函数用法以及技巧

    python画图的函数用法以及技巧

    在本文里小编给大家整理的是关于怎么用python画图以及python画图中turtle函数的用法技巧,需要的朋友们参考下。
    2019-06-06
  • Python进阶:生成器 懒人版本的迭代器详解

    Python进阶:生成器 懒人版本的迭代器详解

    这篇文章主要介绍了Python进阶:生成器 懒人版本的迭代器详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • 详解Django中的form库的使用

    详解Django中的form库的使用

    这篇文章主要介绍了详解Django中的form库的使用,Django是最为著名的Python编程框架,需要的朋友可以参考下
    2015-07-07
  • 解决sublime+python3无法输出中文的问题

    解决sublime+python3无法输出中文的问题

    今天小编就为大家分享一篇解决sublime+python3无法输出中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 使用Python识别和处理验证码的代码示例

    使用Python识别和处理验证码的代码示例

    验证码作为一种常见的安全手段,广泛应用于各种网站和应用中,以防止自动化脚本的恶意攻击,然而,在自动化测试或数据抓取过程中,识别验证码成为了一个不得不面对的问题,本文将详细介绍如何使用Python来识别和处理验证码,通过实际案例和代码,帮助读者理解整个流程
    2025-01-01
  • Python爬取股票信息,并可视化数据的示例

    Python爬取股票信息,并可视化数据的示例

    这篇文章主要介绍了Python爬取股票信息,并可视化数据的示例,帮助大家更好的理解和使用python爬虫,感兴趣的朋友可以了解下
    2020-09-09
  • selenium无法定位元素的几种解决方案

    selenium无法定位元素的几种解决方案

    这篇文章详细介绍了如何使用WebDriver解决各种定位元素和处理页面跳转、弹出窗口、元素失去焦点等问题的方法,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2025-02-02
  • Pandas提取含有指定字符串的行(完全匹配,部分匹配)

    Pandas提取含有指定字符串的行(完全匹配,部分匹配)

    本文主要介绍了Pandas提取含有指定字符串的行(完全匹配,部分匹配),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python学习 流程控制语句详解

    python学习 流程控制语句详解

    下面小编就为大家带来一篇python学习 流程控制语句详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论