制御ステートメント

 決まった命令を決まった回数だけ行う際にfor文を使います。使い方をみていきましょう。

 for文

書式>for 変数A in リストB: 
 「リストBの各要素について順番に、変数Aに代入して、それぞれで処理しなさい。」という意味です。書いてみて変な日本語だと思います。見てみると大したないんですが・・・。

# coding: shift-jis
# 注:このコードはコピー&ペーストしても動きません。手で入力してください。

for a in [1,2,3,4,5] :
  print a

raw_input()

出力画面:
 1
 2
 3
 4
 5
 同じことになりますが、リストの要素について順番に変数aに代入し、printを実行しています。

# coding: shift-jis
# 注:このコードはコピー&ペーストしても動きません。手で入力してください。

for a in [5,4,3,2,1] :
  print a

raw_input()

出力画面:
 5
 4
 3
 2
 1
 上のコードは順に減らす場合の例です。このようにリストを作成すれば、実施したい順番に実行することができます。

 ではfor文の中にfor文を書いてみます。例で九九を計算してみましょう。

# coding: shift-jis
# 注:このコードはコピー&ペーストしても動きません。手で入力してください。

for a in [1,2,3,4,5,6,7,8,9] :
  for b in [1,2,3,4,5,6,7,8,9] :
    # a * b(1, 2, 3, 4, 5, 6, 7, 8, 9)をprintします。
    # printの後に","がついているので、printが実行した後改行されません。
    print a*b,
  # 9つ数字を並べた後、改行するために何も表示しないprintをします。
  print

raw_input()

出力画面:
 1 2 3 4 5 6 7 8 9
 2 4 6 8 10 12 14 16 18
 3 6 9 12 15 18 21 24 27
 4 8 12 16 20 24 28 32 36
 5 10 15 20 25 30 35 40 45
 6 12 18 24 30 36 42 48 54
 7 14 21 28 35 42 49 56 63
 8 16 24 32 40 48 56 64 72
 9 18 27 36 45 54 63 72 81

 関数range()を使う

 今まで1から9までのリフトを作ってきましたが、いくつまで自分の手で入力できますか。
リストを作ってくれる組み込み関数range()の使い方を説明します。

range( [開始の数値,] 終了の数値 [, ステップ] )
 [ ]で囲ったところは省略可能です。
 『開始の数値』は指定しないと"0"となります。『終了の数値』は指定しなければなりませんが、終了したい数値の次の数値にします。『ステップ』は数値毎の間隔を指定します。指定しない場合は"1"になります。やっぱり例でみた方が早いですよね。

# coding: shift-jis
# 注:このコードはコピー&ペーストしても動きません。手で入力してください。

# 0から9まで表示します。10は表示しません。
for a in range(10) :
  print a,
raw_input()

# 開始の数値を指定した場合
for b in range(1,10) :
  print b,
raw_input()

# ステップを2に指定した場合
for c in range(1, 10, 2) :
  print c,
raw_input()

# ステップをマイナスにすると開始の数値は終了の数値より小さくなります。
for d in range(10, 1, -2) :
  print d,
raw_input()

出力画面:
 0 1 2 3 4 5 6 7 8 9
  1 2 3 4 5 6 7 8 9
  1 3 5 7 9
  10 8 6 4 2

 else文を使う

 else文はforから抜けたとき1回だけ実行されます。

# coding: shift-jis
# 注:このコードはコピー&ペーストしても動きません。手で入力してください。

for x in [1,2,3,4,5]:
  print x

# elseは1回だけ実行されます。
else:
  print "終わったよ"

for x in range(10):
  print x
else:
  print "終わりだよ"

raw_input()

出力画面:
 1
 2
 3
 4
 5
 終わったよ
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 終わりだよ