簡體   English   中英

三元運算符的Python C等價

[英]Python C equivalence of this ternary operator

我想將此函數從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三元運算符的順序不同。 三元運算符的形式為:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM