Python相当于PHP的null coalesce运算符和简写三元运算符?

时间:2017-07-10 12:40:37

标签: python python-3.x

我在这里找不到任何东西:https://docs.python.org/3/library/operator.html

PHP的两个例子很方便:

echo $count ?: 10; //prints $count if $count is not empty string, null, false or 0, otherwise prints 10.

echo $a ?? $b ?? 7; //prints $a if $a is defined and not null, otherwise will print $b, otherwise 7

Python中是否有等效的运算符?注意:

a if condition else b

并没有真正替换速记三元运算符,因为条件和返回值是在PHP中的一个元素中以速记版本指定的。

2 个答案:

答案 0 :(得分:6)

or运算符返回第一个true-y值。

a = 0
b = None
c = 'yep'

print(a or 'nope')
print(b or 'nope')
print(c or 'nope')
print(b or c or 'nope')
> nope
> nope
> yep
> yep

答案 1 :(得分:-1)

在Python中有一种方法可以进行三元操作:

print((b, a)[a])  # if a: prints a; otherwise prints b

解释

选项位于元组中:(b, a) [条件]将确定我们在第0级调用元素(条件为假)或在元组中调用1(条件为真)。

实施例

a = False
b = "youpi"
print((b, a)[a])
# youpi

condition = "Thirsty"
print(("Foo" , "Bar")[condition == "Thirsty"])
# Bar