Ad
1: 2016-07-12 (火) 15:56:16 njf ソース バックアップ No.1 を復元して編集 2: 2016-07-12 (火) 16:26:59 njf ソース バックアップ No.2 を復元して編集
Line 1: Line 1:
- for i in range(3):+[[Python]]で回数を指定してループするのは通常for文とrangeを組み合わせる。 
 + 
 + for i in range(3):
   print i    print i
Line 7: Line 9:
 1  1
 2  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]]


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 2835, today: 1, yesterday: 0
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF