2016-07-02 20 views
0

私は以前のC++でプログラミングしましたが、私はPythonを初めて使用しています。私はこれを探しましたが、私は適切な答えを見つけることができませんでした。 C++では、私が行うことができます:私がしなければPythonでforループの繰り返しをスキップしますか?

for(int i=0; i<10;i++) 
{ 
    i+=5; 
    std::cout<<i<<std::endl 
} 

を、iの値が5と11しかし、Pythonで次のようになります。

for i in range(0,10): 
    i+=5 
    print i 

iの値は、ループの反復のアップデートを行い、しかし、次の反復では、それは1になるでしょう。 私は、各反復の後、私はそれが範囲で生成されたタプル/リストの次の値を含んでいますが、私はそれが反復をスキップすることができますC++のように?私は実際にnext()関数を5回使用したくないです

EDIT:range関数の3番目のパラメータを一般的な使用に使用できますが、特定の条件本当です。例えば

for(int i=0; i<10;i++) 
{ 
    if(i%2)i+=1; 
    std::cout<<i<<std::endl 
} 
+2

あなたはステップサイズを指定して[ 'range'](https://docs.python.org/2/library/functions.html#range)三番目のパラメータを使用する場合があります。それがあなたに合わない場合は、通常のwhileループを考えてみてください。 – Xiobiq

+1

これをPythonで行う最良の方法は、5回の繰り返しをスキップする理由に依存します。実際にはC++のようなコードは書かれません。時にはおもちゃの簡略化によって、実際の話題が隠されることがあります。 –

答えて

5

私はあなたが考えていたか知っている、しかし、あなたがrange()関数内の反復ステップを設定することができます内蔵のpythonのために何かがあります。 Hereは、range()の公式のPythonドキュメントです。本質的には

、あなたがどうなる各反復の後にxを、スキップする:これは助け

for i in range(start, stop, x + 1): 
    # functions and stuff 

希望。

+2

しかし、それは一般的ではありません。あなたが一定のスキップを持っているときにのみ動作します。 3の倍数と2の倍数をスキップする必要がある場合はどうすればよいですか? – hashcode55

+0

@ hashcode55これは組み込み関数を使用する場合の欠点です。問題を解決するための大文字と小文字を区別する方法については、Ned Batchelderのソリューションを参照してください。 – Jerrybibo

6

あなたは条件が真のときにcontinueを使用し、反復をスキップしたい場合:

for i in range(10): 
    if i % 2: 
     continue 
    print(i) 
3

あなたが定期的にwhileループを使用することができます。あまりうまく見えませんが、それは仕事をします。例えば :

i = 0 
while i < 100: 
    print i 
    if i % 2 == 0: 
     i += 5 
    i+=1 
関連する問題