23

次のように、Python で for ループを簡単に作成できます。

for i in range(10):

しかし、C++ では非常に簡単な、より複雑なものを作成する方法がわかりませんでした。

Python で次のような for ループをどのように実装しますか。

for(w = n; w > 1; w = w / 2)

これまでに作成した最も近いものは次のとおりです。

for w in reversed(range(len(list)))
4

6 に答える 6

44
for i in range(0, 10, 2):
    print(i)

>>> 0
>>> 2
>>> 4
>>> 6
>>> 8

http://docs.python.org/2/library/functions.html

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
于 2013-07-30T10:20:12.193 に答える
3

ジェネレーターを使用する必要があります。これは次のように実装できます。

def stepDown(n):
    while n>1:
        yield n
        n = n/2

for i in stepDown(n):
    print i # or do whatever else you wish.

これは、頭にある他の複雑なパターンに簡単に一般化できることに注意してください。

于 2013-07-30T10:25:27.067 に答える
1

何かのようなものfor i in [n/(2**j) for j in range(int(math.log(n))+1)]

于 2013-07-30T10:20:35.723 に答える