Python 此三元运算符的 C 等价性
Python C equivalence of this ternary operator
我想将此函数从 C 编程为 Python,但是 return 上的条件很难转换:
在 C:
int pos(int b) {
char *r = strchr(a, b);
return r?(r - a):-1;
}
这是我尝试过的:
def pos(b) :
r = alphabet[a.rfind(b):]
return r if (r - len(a)) else -1
r 变量相同,但问题是三元运算符。
所以当然,它不会做同样的工作:/
你能帮帮我吗?
Python 三元运算符的顺序与 C 三元运算符的顺序不同。 C 三元运算符的形式为:
condition ? expr_if_true : expr_if_false
而 Python 版本的形式为:
expr_if_true if condition else expr_if_false
return r?(r - a):-1;
与
相同
if (r != NULL) return r - a;
else return -1;
我想将此函数从 C 编程为 Python,但是 return 上的条件很难转换:
在 C:
int pos(int b) {
char *r = strchr(a, b);
return r?(r - a):-1;
}
这是我尝试过的:
def pos(b) :
r = alphabet[a.rfind(b):]
return r if (r - len(a)) else -1
r 变量相同,但问题是三元运算符。 所以当然,它不会做同样的工作:/ 你能帮帮我吗?
Python 三元运算符的顺序与 C 三元运算符的顺序不同。 C 三元运算符的形式为:
condition ? expr_if_true : expr_if_false
而 Python 版本的形式为:
expr_if_true if condition else expr_if_false
return r?(r - a):-1;
与
相同if (r != NULL) return r - a;
else return -1;