[[Python]]で回数を指定してループするのは通常for文とrangeを組み合わせる。 for i in range(3): print i 実行結果 0 1 2 このとき、iのスコープはループの外まである。 for i in range(3): print i print i 結果 0 1 2 2 rangeは等差数列を生成する関数。つまり >>> range(3) [0, 1, 2] となる。pythonのforループはinの要素を順にループするので、このような結果となる。 rangeは最小値、上限、差を引数とすることもできる。 >>> range(1,4) [1, 2, 3] >>> range(1,4,2) [1, 3] 非常に回数の多いループで、リストを生成するとメモリがもったいない、という場合にはxrangeを使うとリストを生成しないのでメモリが節約できる。 for i in xrange(3): print i xrangeはxrange型のオブジェクトを返す。 xrange(3) >>> range(1,2) そのかわり次の要素を取得するときに計算を行うので遅くなる。通常はrangeで十分。非常に大きな回数のループの時だけ考慮すれば良い。 pythonのforループはelse文もとれる for i in range(3): print i else: print "loop end" 結果 0 1 2 loop end else文はbreakを使ったときにとばされる for i in range(3): print i break else: print "loop end" 結果 0 例えば、ループの中の処理で何か検索し見つかればbreakして、最後まで見つからなかったときにelse文で「無かった」とメッセージを出す、といった使い方ができる。 # -*- coding: utf-8 -*- from random import randint for i in range(3): print i if i == randint(0,3): print u"あたり!" break else: print u"はずれ!" 結果1 0 1 あたり! 結果2 0 1 2 はずれ! [[目次へ戻る>Python]]
(This host) = https://njf.jp