2022年 11月 8日

Python三目运算符

Python三目运算符(三元运算符)

假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:

if a > b:
        max = a
    else:
        max = b
  • 1
  • 2
  • 3
  • 4

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

max = a if a>b else max = b# exp1 if contion else exp2 
  • 1
这是一种类似于Java编程语言中三目运算符? : 的写法。而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
# 应该理解为if else的嵌套循环
a if a > b else ( c if c > d else d )
  • 1
  • 2
  • 3

例子:

#使用 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: 90
Input b: 100
a小于b
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这是一个嵌套的三目运算符。
先对 condition(a > b )判断,如果该表达式为 True,就返回第一个表达式print(“a大于b”),否则将继续执行 else 后面的内容: ( print(“a小于b”) if a < b else print(“a等于b”) ) 进入该表达式后,先判断 condition(a < b )是否成立,如果 a < b 的结果为True,将执行 print(“a小于b”),否则执行 print(“a等于b”)。