将C++for循环转换为python

我在将 C++ 转换为 python 时遇到了一些麻烦。我遇到的问题是 for 循环for (Nbound = 1; Nbound < (Nobs + 1) && B < Beta; Nbound++)for (Ndm = 0;(Ndm < (i + 1) && P3 > (0)) || PP == 0; Ndm++). 我不确定这将如何在 python 中工作,我认为 python 不允许在 for 循环中使用布尔语句,所以我认为我必须使用 IF 语句在内部调用它,但我不完全确定。谢谢你的帮助!

另外,我注意到这段代码中有很多空变量,例如,float PP有没有办法在 python 中做到这一点,或者我只是给它赋值 0 然后稍后再更改它?

    float Pf = 0; //The complement of Beta
    float B = 0; //Beta
    float P3;
    float PP;
    float Nbound = 1;
    for (Nbound = 1; Nbound < (Nobs + 1) && B < Beta; Nbound++) {
        int Ndm = 0;
        int Nbgd = Nobs; //Setting Ndm=Nobs
        Pf = 0; //Zeroing the placeholder for the sum
        float exp; //A variable to store the exponential
        for (int i = 0; i < (Nobs + 1); i++) //Summing over Nbgd+Ndm<NObs
        {
            P3 = 1;
            PP = 0;
            if (P1[Nbgd] > 0) {

                for (Ndm = 0;(Ndm < (i + 1) && P3 > (0)) || PP == 0; Ndm++) {
                    //P3 = dist(Ndm, Nbound);
                    Pf = Pf + (P1[Nbgd] * P3); //Summing over the probability
                    PP = PP + P3;
                }

            }

        }
    }
}

回答

ForPython 中的循环用于对对象进行迭代。如果你想要一个具有特定退出条件的循环,那么你应该使用while循环。

for C中的循环可以描述为:

for {initialization_statement; condition_expression; update_statement)
{
    body_statement_1;
    body_statement_2;
    ...
    body_statement_n;
}

Python中相应的循环是:

initialization_statement
while condition_expression:
   body_statement_1
   body_statement_2
   ...
   body_statement_n
   update_statement


以上是将C++for循环转换为python的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>