python: iif 还是 (x ? a : b)

19 投票
1 回答
49012 浏览
提问于 2025-04-16 00:00

可能重复的问题:
Python 三元运算符

如果Python支持C/C++中的这种写法 (x ? a : b),我会这样写:

print paid ? ("paid: " + str(paid) + " €") : "not paid"

我真的不想在这里写一个if判断和两个独立的打印语句(因为上面的例子很简单,在我的代码里,情况要复杂得多,几乎重复的代码写两遍真的很傻)。

但是,Python并不支持这种运算符或者类似的运算符(据我所知)。那么,最简单、最干净、最常见的做法是什么呢?

我查了一下,看到有人定义了一个iif(cond, iftrue, iffalse)函数,这个灵感来自于Visual Basic。我在想,我真的需要加这个代码吗?为什么标准库里没有这样一个基本的函数呢?

1 个回答

23

试试看

 print ("paid: " + str(paid) + " €") if paid else "not paid"

撰写回答