Python 是否有等价于C语言的“?:”三元运算符
是的,我们也可以在Python中绕过C语言的三元运算符,方法类似也是存在的。首先让我们看一个C语言三元运算符的示例:
示例
#include <stdio.h>
int main() {
int x = 10;
int y;
y = (x == 1) ? 20: 30;
printf( "Value of y = %d\n", y );
y = (x == 10) ? 20: 30;
printf( "Value of y = %d\n", y );
}
输出
Value of y = 30
Value of y = 20
在Python中有许多运算符:算术运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符等等。通过C语言中的三元运算符可以实现的上述任务可以通过逻辑运算符实现。
在Python 2.5之前,程序员通过以下逻辑运算符语法来完成相同的工作。然而,这被认为是不正确的用法,因为当on_safe为false时会失败。
[expression] and [on_true] or [on_false]
因此,在Python 2.5之后,引入了以下形式的三元运算符,以便于程序员的任务。
语法
让我们看一下语法:
[on_true] if [expression] else [on_false]
示例
现在让我们来看一个在Python中实现三元运算符的示例。
x = 20
y = 10
res = x if x < y else y
print(res)
输出
10
示例
这里是一个示例
x = 50
y = 10
res = x if x > y else y
print(res)
输出
50