Pythonには、反復の制御として、forとwhileの2つが有る。 forは繰り返す回数が判っている場合に、 whileは回数では無い条件によって終了させたい場合に、使用する。 どちらも、前判定である。
基本的なforの例。
キーボードから5つの整数を入力し、その合計を求める。エラー処理はしていない。
3行目、sumの初期化。
5行目、iをカウンタとして、5回繰り返す。
具体的には、iの初期値を0,終了判定をrangeで指定した5,増減を+1、とする。
6行目、反復する部分。
inputでキーボードから入力されるデータは必ず文字型になるので、
入力されたデータをintで整数型に変換し、sumに累算( sum += )している。
インデントが、反復する範囲を決定する。
入れ子であったり、反復する範囲が複数行に渡っていても、CやJavaの様に中カッコは使わない。
# for.py sum: int = 0 for i in range(5): sum += int(input('%d番目の数値 --> ' % (i) )) print("合計 = %d" % (sum))実行例
# for2.py sum: int = 0 for i in range(1, 6): sum += int(input('%d番目の数値 --> ' % (i) )) print("合計 = %d" % (sum))実行例
# for3.py sum: int = 0 for i in range(1, 6, 1): sum += int(input('%d番目の数値 --> ' % (i) )) print("合計 = %d" % (sum))
# for4.py meibo: list = ['Atou','Itou','Udou','Etou','Katou','Kitou','Kudou','Satou','Sudou'] for i in range(0, 9, 1): print("meibo[%d] = %s" % (i,meibo[i]))実行例
forでは、in の後にリスト(配列)を指定する事で、その要素を順番に処理する事が出来る。
流石、オブジェクト指向な言語だなぁ。
meiboというリストの要素を全て順番に最後まで表示する例。
xは各要素の値自体なので、添字としては使えない。
# for5.py meibo: list = ['Atou','Itou','Udou','Etou','Katou','Kitou','Kudou','Satou','Sudou'] for x in meibo: print(x)
# for6.py meibo: list = ['Atou','Itou','Udou','Etou','Katou','Kitou','Kudou','Satou','Sudou'] for x in meibo[3:]: print(x)
# for7.py meibo: list = ['Atou','Itou','Udou','Etou','Katou','Kitou','Kudou','Satou','Sudou'] for x in meibo[3:7]: print(x)
# for8.py import sys for x in sys.argv: print(x)