2017-03-15 15 views
-7

私はfor C++を持っていますが、Pythonで記述したいのですが、forの条件をどのように処理するか分かりません。誰でも助けてくれますか?Pythonでforループを書く方法

for (int b = (i - a)/2; a + b <= i; b++); 
+11

は[インターネットが壊れています](https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=python+for+loop&*)ですか? – EdChum

+1

ソフトウェア工学の半分は、ドキュメンテーションを研究して読む能力ではなく、プログラミング能力がないことが分かります。それだけでスキルです! –

+0

行の最後にセミコロンがあると、最も単純なPythonの同等物は 'pass'です。 – Duncan

答えて

0

終了条件a + b <= iは(Pythonのforがない以下未満で使用されるように)順番にb < i - a + 1あろうb <= i - aと等価です。

for b in range((i - a)/2, i - a + 1): 
    ... 
をしかし、非常に多くの場合、あなたは、PythonにC/C++から変換するときなどのためのように書きたくはありません:Pythonであなたが書くことができ意味

。コードを完全に再構成する方がよいかもしれません。

+0

はい、うまくいきます。ありがとうございました :) – AzHK

0

直接あなたの質問に答えるために:

terminatingValue = 0 
for b in range((i-a)/2,a+b-1): 
    terminatingValue = b 
    print (b) 
+0

bはCコードのfor文で定義されていますが、これは以前定義されていないため、翻訳としては機能しません – Kewl

+1

コードを更新しました... – Neil

+0

これはまだ動作しません。インデックス。 – Prune

0

使用while

a=something 
i=something 
b=(i-a)/2 
while(a+b<=i): 
    ###do whatever you want in the loop### 
    b+=1 
+0

もちろん、このような状況ではwhileループが適しているかもしれませんが、 "forループをPythonで書く方法"の質問には答えません。 –

0

ます:

for b in range((i-a)/2,a+b-1): 
    print (b) 

をそして、何らかの理由で、あなたは終了値が必要な場合forループとd range()機能。例:

for i in range(15): 
    #code to execute 15 times 

しかし、あなたのコードで、私が代わりにwhileループを使用してお勧めします:

i = 1 #your value for i 
b = (i-a)/2 
while a+b <= i: 
    # Other code 
    b+=1 
0

あなたの混乱は、Cの反復構築物の過剰一般に由来します。 Pythonは、すべてのループパラメータが暗黙的にループインデックスを参照すると主張しています。私はB < - A + 1

今、私たちはループの

for b in range((i-a)/2, (i-a)+1): 

ワンを取得:終了条件については、Bの面であなたの不平等を解決し、のない平等0からiaまでの範囲があり、その上半分に対処したいという解釈があります。

関連する問題