Python 繰り返しfor文
以下のプログラムを実行してみましょう。
for i in range(1, 11):
print(i)
実行すると
1
2
3
4
5
6
7
8
9
10
for文はこのように繰り返しを行うことができます。
for i in range(1,11)は「変数iに1から10までの数を1つづ変化させながら代入し,処理内容を実行してください」という指示です。
pythonではrange(1,11)と書いたとき「1から10まで」となります。11は含まれないことに注意してください。
これは他の言語とは異なる動きです。
共通テストで使われる擬似言語では「iを1から10まで1つずつ増やしながら繰り返す」などと表現され,10を含みます。
プログラムの内容を詳しく書くと
となります。
for文の中にif文を入れ込むこともできます。
for i in range(2, 101):
if i % 2 == 0:
print(i)
「i % 2 == 0」は「iを2で割ったあまりが0と等しいかどうか」を判定します。
つまり,iが偶数のときに「print(i)」を実行するので,出力結果は「2,4,6,……,100」となります。
1+2+3+……+100を計算するプログラムは以下のように書けます。
total = 0
for i in range(1, 101):
total = total + i
print("合計:", total)
実行すると「5050」となり,正しいことがわかります。
「total = total + i」は一見間違った式のように思えますが,数学の等式とは意味が違います。
右辺のtotalとiは計算する前の値が入ります。
左辺のtotalには右辺の計算結果を代入します。
例えば,total=6,i=4だとすると,total=total+iでは6+4=10となり,totalに10が代入され,次のループに入ります。
実行の様子を見やすくするために,for文の中にprint文を入れてみます。
total=0
for i in range(1,101):
print(f"計算前:total={total},i={i}")
total=total+i
print(f"計算後:total={total},i={i}")
print("ーーーー次のループへーーーー")
print(total)
これを実行すると以下のようになります。
totalの変化,iの変化に注目をして,ループの進行を理解してみましょう。
for文をマスターできるといろんなプログラムを自由に書くことができるようになります。
がんばりましょう。