こんにちは、やっちゃんです。
今日はループ処理についてです。
初めての方は、なんぞや?と思われるとかもしれまんせんが、「ループ処理=繰り返し(反復)処理」
だと覚えてください。プログラム内において、ある一定の条件を満たしていれば、
与えられた命令を繰り返すことコードになります。
様々な場面で使われる処理方法になるので、今は使いどころのイメージがつかない方も、
まずは動かし方だけでも今回覚えてしまいましょう。
forループ
基本
まずforループを使う時の構文が下記になります。
1 2 |
for 「変数」 in 「繰り返したい変数の対象」: 「変数の答えを繰り返すコード」 |
for のあとに「変数」を指定し、inの後に「繰り返したい変数の対象」、そしてコロン「:」を1行で
記入します。その後、変数を繰り返すためのコード、例えばprint()などで繰り返したかった対象を
表示させます。print()の前はスペースを4つ入れるので忘れずに。下記の例を見てみましょう。
1 2 3 4 5 |
Ex. human = ["Yacchan","Good","Scientist"] for i in human: print(i) |
→ Yacchan, Good, Scientist
例では変数を「i」、繰り返したい対象をhumanにしました。humanの内容は事前に
[“Yacchan”,”Good”,”Scientist”]と指定しています。つまり、変数「i」の内容はYacchan、
Good、Scientistですので、print(i)とすることで「Yacchan, Good, Scientist」と出力
されるのを確認してみてください。確認できましたか?どうも有難うございます。
range()とループ処理の組み合わせ
forループの次の事例を紹介する前にrange()という組み込み関数について紹介させてください。
range()はforループの中で読み込ませることで、()内で指定した整数を順番に
生成する関数になります。range(1,10)と指定すれば、ループ処理によりで1~9までの数字を
生成してくれます。1つ目の引数(先の例では1)はrangeが返す整数に含まれていますが、
2つ目の引数(先の例では10)は含まれませんので、注意してください。
それではrangeを用いながらforループの処理を実際に見てみましょう。
1 2 |
for i in range(1, 10): print(i) |
→1,2,3,4,5,6,7,8,9
1から9までの数字が順番に生成されたのが確認できたでしょうか?
forループの応用① (多層、入れ子ループ)
これまで紹介してきたループは1つのループ処理が行われるだけでした。しかし、ループはもっと
複雑な形をとることがあります。頻出するものとして、ループの中にさらにループが組み込まれている
ことがよくあります。1つ目のループ処理で繰り返したい対象の1個目が処理された後に2つ目のループ
の内容がすべて処理され、続いて、1つ目のループ処理で繰り返したい対象の2個目が処理された後に
2つ目のループの内容がすべて処理され、、終わるまで繰り返されます。
よくわからない方、下記の例を見てください。
1 2 3 4 |
for i in human: print(i) for x in range(1,10): print(x) |
→Yacchan、1,2,3,4,5,6,7,8,9
Good、1,2,3,4,5,6,7,8,9
Scientist、1,2,3,4,5,6,7,8,9
先ほどループの基本で指定したhumanの内容の1個目「Yachhan」のあとに1から9の数字が
繰り返され、その後、Goodのあとに数字、Scientistの後に数字と生成されたのが
確認できましたでしょうか?
2個目のループは1つ目のループの中に入れたいので、print(i)の真下に改行して挿入します。
print(x)は2つ目のループの締めくくりですので、2個目のforのfを起点として再度4つのスペースを
入れます。
forループの応用② (1から指定の数字まで合算値を算出)
例えば1から10までの数字の合算値を算出したいときにもforループが使えます。
下記の例を見てください。
1 2 3 4 |
s=0 for i in range(11): s=s+i print(s) |
→55
range(11)は1から10の数字を変数「i」で生成してくれます。s=s+iの=は数学の「イコール」
ではなく、Pythonでは「代入」という意味でしたね(Pythonでのイコールは==)。ですので、
sは最初に0が代入(s=0)されていますのでs=s+iはs=0+1、つまりs=1となり、sに代入される
数字が1に変更されました。続いて次のループに入るので変数「i」は2です。先ほどと同様に考えて
s=s+iはs=1+2となりますのでs=3つまりsに代入される数字は3となります。これがrange(11)、
つまり1~10まで繰り返されて55という答えが算出されます。
少々複雑かもしれませんが、慣れてくると思いますので、いろいろ試してみてくださいね^^
終わりに
ループ処理について学びました。ループ処理にはfor文だけでなく、while文などもあったり、他にも
break文やcontinue文など細かく動作を指定できるコードがありますが、まずはfor文に
慣れましょう。使う機会が多いと思います。
次回はfor文を使った関数の作成など、関数の応用について学びたいと思います^^。
本日も有難うございました!
コメント