这个三元运算符的 Python C 等价物



我想把这个函数从C编程到Python,但返回的条件很难转换:

在 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;

最新更新