2012-01-21 5 views
-1

私はいくつかのCコードをPythonに変換しています。誰かがこれをCプログラミング言語から変数名などのPythonに変換することができますか?ループをcからpythonに変換する

int i, j, c = 0; 
int n = SOME CONSTANT, not less than 2, like 3 4 5 6.. 
for (i = 0, j = n-1; i < n; j = i++){ 

} 

私はfor-loopでこれはできないと思います。多分このように:誰もがよりよい解決策を持っている場合

j = n - 1 
i = 0 
while True: 
    do stuff 

    if i < n: 
    break 
    i = i + 1 
    j = i 

非常に醜いがありますが、これを行うことができますいくつかの方法があり、用途に応じて、あなたは時間的にわずかに異なる振る舞いを得る

+0

'どこから来N'たのですか? – mowwwalker

答えて

1

を共有してください。とにかく、特別な必要がなければ、range関数を使うことができます。これは、Python 3.xが「怠惰な」関数になっているからです。それであまりにも多くの記憶を取ることはありません。

は次のように行います

J = n - 1 
for i in range(0, n): 
    #The body of your code goes here# 
    j = i 

すれば完了です。

0
for i, j in zip(range(n), [n - 1] + range(n - 1)): 
    # do stuff 
+0

'zip()'を使うと 'range(-1、n-1)'を使うことができます。 'a = -1 a [n-1]' 'がどこで' n == len(a) 'であるかを利用します。 – jfs

+0

@ J.F.Sebastian、はい、これは真ですが、イテレータのインデックスとしてiとjを使用している場合のみです。技術的には、彼がCで与えた 'for'ループと同等ではないので(' j'はn - 1の代わりに-1になるので)、 'j'の使い方によっては望ましくないかもしれません。 –