Python中的三元运算符?
许多编程语言都支持三元运算符,它基本上定义了一个条件表达式。
同样,Python中的三元运算符用于根据二元条件的结果返回一个值。它以二元值(条件)作为输入,因此看起来类似于“if-else”条件块。但是,它也返回值,因此行为类似于函数。
语法
[on_true] if [expression] else [on_false]
让我们编写一个简单的程序,比较两个整数:
a. 使用Python if-else语句:
>>> x, y = 5, 6
>>> if x>y:
print("x")
else:
print("y")
yb. 使用三元运算符
>>> x, y = 5, 6
>>> print("x" if x> y else "y")
y使用三元运算符,我们能够在一行代码中编写代码。因此,Python首先评估条件,如果为真,则评估第一个表达式;否则,评估第二个条件。
>>> def find_max(a,b): return a if (a>b) else b >>> find_max(5, 6) 6
实现三元运算符的方法
以下是实现三元运算符的不同方法。
a. 使用Python元组
>>> a, b = random(), random() >>> (b, a) [a>b] 0.5497848117028667
以上等同于:
>>> (b, a) [True] 0.5065247098746795
但是,如果您对返回的值是“a”还是“b”感到困惑。让我们重写上面的代码。
>>> (f"b:{b}", f"a:{a}") [a>b]
'b:0.5497848117028667'b. 使用Python字典
>>> a, b = random(), random()
>>> {False: f"b:{b}", True: f"a:{a}"}[a>b]
'a:0.8089581560973976'我们可以互换键值对:
>>> {True: f"a:{a}", False: f"b:{b}"}[a>b]
'a:0.8089581560973976'c. 使用Lambda表达式
我们可以使用Python lambda函数作为三元运算符:
>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]()
'b:0.6780078581465793'嵌套Python三元运算符
让我们尝试链接这些运算符:
>>> from random import random >>> x = random() >>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"
输出
'between 0 and 5'
让我们检查x的实际值:
>>> x 0.08009251123993566
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP