3.16 Python三目运算符

Python三目运算符(三元运算符)用法详解

我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:

python 复制代码
if a>b:
    max = a;
else:
    max = b;

但是Python提供了一种更加简洁的写法,如下所示:

复制代码
max = a if a>b else b

这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。

使用 if else 实现三目运算符(条件运算符)的格式如下:

复制代码
exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

前面的语句max = a if a>b else b的含义是:

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。
三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:

复制代码
a if a>b else c if c>d else d

应该理解为:

复制代码
a if a>b else ( c if c>d else d )

【实例】使用 Python 三目运算符判断两个数字的关系:

python 复制代码
a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大于b") if a>b else ( print("a小于b") if a<b else print("a等于b") )

可能的运行结果:

复制代码
Input a: 45↙
Input b: 100↙
a小于b

该程序是一个嵌套的三目运算符。程序先对 a>b 求值,如果该表达式为 True,程序就返回执行第一个表达式 print("a大于b"),否则将继续执行 else 后面的内容,也就是:

复制代码
( print("a小于b") if a<b else print("a等于b") )

进入该表达式后,先判断 a<b 是否成立,如果 a<b 的结果为 True,将执行 print("a小于b"),否则执行 print("a等于b")。

相关推荐
Big Cole1 分钟前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
2301_822375443 分钟前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_706653234 分钟前
跨语言调用C++接口
开发语言·c++·算法
2301_790300964 分钟前
Python类型提示(Type Hints)详解
jvm·数据库·python
小罗和阿泽5 分钟前
复习 Java(2)
java·开发语言
无小道8 分钟前
Qt——信号槽
开发语言·qt
老骥伏枥~9 分钟前
C# if / else 的正确写法与反例
开发语言·c#
Eric.Lee202110 分钟前
SLAM 路径规划的安全走廊实现
python·机器人·ros·路径规划·避障·安全走廊
不懒不懒16 分钟前
【HTML容器与表格布局实战指南】
java·开发语言
小W与影刀RPA16 分钟前
【影刀RPA】:智能过滤敏感词,高效输出表格
大数据·人工智能·python·低代码·自动化·rpa·影刀rpa