2016-11-21 11 views
0

。 私はrange()関数でこれをやろうとしましたが、インクリメントだけでどのように動作するのか知っています。しかし、ここで私は各反復でそれを掛けたい。私は手動でループの側でそれをしたくないですPythonのループ制御

+0

これは無限ループです。 「0 * 2」は「0」である。 –

+0

あなたのコードを表示すると、あなたの得点とあなたの期待結果が表示されます。 – Inconnu

+0

これはjavaまたはC++の構文です。私はPythonでそれをやりたいとします –

答えて

2

whileは簡単ですが、whileも遅いです。試してください:

In [3]: import math 

In [4]: n = 10 

In [5]: for i in (2**n for n in range(1, int(math.log2(n)) + 1)): 
    ...:  print(i) 
    ...: 
2 
4 
8 

In [6]: n = 40 

In [7]: for i in (2**n for n in range(1, int(math.log2(n)) + 1)): 
    ...:  print(i) 
    ...: 
2 
4 
8 
16 
32 

In [8]: n = 60 

In [9]: for i in (2**n for n in range(1, int(math.log2(n)) + 1)): 
    ...:  print(i) 
    ...: 
2 
4 
8 
16 
32 

In [10]: n = 100 

In [11]: for i in (2**n for n in range(1, int(math.log2(n)) + 1)): 
    ...:  print(i) 
    ...: 
2 
4 
8 
16 
32 
64 
+0

このループは、2,4,8,16、...の代わりに2,4,6,8、...を提供します。 – quantummind

+0

@quantummindあなたが正しいです。 Misread。 –

+0

@quantummind編集を確認します。 –

1

シンプルはPythonのルールです。簡単ですが:

n = 20 
i = 2 

while (i<n): 
    print "the i variable is "+str(i) 
    i = i * 2 

私は(もともと、これは以来、変更されている)この単純な例のための追加を使用し、あなたが行ったように、乗算は、単に「*」演算子を使用します。

+0

質問には、乗算であるi * = 2と答えています。答えはi = i + 2です。 – quantummind

+0

コメントには注意が必要です。概念は教えられている。私はお金のための本当のコードを書く。 –

+0

OK、私は下投票を取り消したいですが、あなたがあなたの答えを編集するまではできません。あなたが望むものを書くのではなく、顧客が尋ねたことをやり遂げるかもしれないと考えて、彼が望むように修正することができると伝えます。 :-) – quantummind

関連する問題