同じ処理を繰り返す for文
R5.2月からPythonの勉強をしているプログラミング初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
前回はプログラムには「順次」「分岐」「反復」という三つの基本があるという事と、「分岐(if文)」の内容を学んでいきました。今回は同じ処理を繰り返す「反復(for文)」の内容を学んでいきます。
Pythonの「for文」は2種類あります。
回数を指定して繰り返すfor文
1つ目は「回数を指定して繰り返すfor文」です。これは「回数」を決めて「繰り返す処理」を指示します。このとき、回数をカウントするための「カウント変数」も指定します。
書式:for文(回数を指定)
for カウント変数 in range(回数):
繰り返す処理
例として「5x0~5x9の10個の掛け算をするプログラム」を作ってみましょう。
ここで使われているrangeとは、連続する整数のリストを自動で生成する関数です。for文とrange関数を組み合わせることで、任意の回数だけループできます。
今回のプログラムでは0~9までの数を繰り返すという命令になっています。
一言メモ
これ試しにrange(1000)でやったみたら凄い速さで0~999まで計算してくれました。range関数は(5,10)を入力すると5~9までの数字を繰り返し処理するなど任意の範囲を指定することもできるみたいですね。
リストのすべての要素について繰り返すfor文
2つ目は「リストのすべての要素について繰り返すfor文」です。これは「リスト」と「繰り返す処理」を指示します。この時、リストから取り出した要素を一時的に入れて使うための「要素を入れる関数」も指定します。
書式:for文(リストを指定)
for 要素を入れる関数 in リスト:
繰り返す処理
例として「リストの中身を表示させるプログラム」を作ってみましょう。
リストは「変数=[ ]」で作ります。今回はscorelistという変数に「64,100,78,80,72」のリストを代入しました。
リストの中身が表示されました。
リストの中の点数を足すfor文
次は上記のプログラムを少し変えて「リスト(scorelist)の中に入っている点数の合計を求めるプログラム」を作ってみましょう。
リストはそのままで、「total」という変数にまず0を代入、そこから繰り返しのfor文で「total」にリストを足していきます。この時、合計値にまたtotalという変数を使っていますが変数は新たに上書きすることが可能です。
for文の入れ子
for文の「繰り返す処理」のところに更にfor文を入れることができます。「繰り返しの中で繰り返しを行う」という二重の繰り返しです。これを「for文の入れ子」といいます。
書式:for文(入れ子)
for カウント変数1 in range(回数):
for カウント変数2 in range(回数):
繰り返す処理
for文の入れ子では外側のfor文のカウントが1つ進むたびに「内側のfor文がすべて繰り返し終わるまで繰り返す」ということを行います。
カウント変数1が1進むとカウント変数2のカウントをすべてを繰り返して、またカウント変数1が1進むとカウント変数2をすべて繰り返すということですね。
言葉で説明してもわかりづらいので例として「0~9までの整数同士を掛け合わせられるプログラム」を作ってみましょう。
出力結果は途中省略しています。0x0=0~9x9=81までを繰り返す行うプログラムになりました。
まとめ
今回はfor文について学んでいきました。リストの合計を出す関数は自分が作りたいものにも使えそうな感じです。
for文はrangeの他にも便利な関数が使えそうなので活用していきたいですね。