将循环的C++转换为Python

2024-09-28 20:43:08 发布

您现在位置: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;
                }

            }

        }
    }
}

Tags: thefor语句floatbetappoverint
1条回答
网友
1楼 · 发布于 2024-09-28 20:43:08

Python中的For循环用于对象上的迭代。如果需要具有特定退出条件的循环,则应使用while循环

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

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

相关问题 更多 >