ループ・繰り返し処理に使われるfor文の構造
for文を使うことで繰り返し処理を作ることができます。
for文の構造は以下のようになっています。
for 変数 in シーケンス:
繰り返し中の処理
・
・
・
・forは繰り返し処理を行うための命令です。
・変数はループ中に値が増えたり減ったり変化するものです。
ループ中に値がどんどん変化していく中で、値に応じて処理を分岐させたりします。
変数はi,jと言った数学で使うような文字を充てることもあれば、name,ageのような意味のある文字を変数名として充てることもあります。
わかりやすい変数名にすることで、自分や他の人が後から読み返すときにプログラムの意味がわかりやすくなります。
・inはforと同じで繰り返し処理を作るために記述します。固定文言です。
・シーケンスは数字の集まりや、リスト・タプルなど値の集合などが入ります。
シーケンスに指定された数字や文字や変数の集まりの1つずつに対して処理を行います。
・繰り返し中の処理を書くときは、必ずインデントと呼ばれる4つの半角スペースが必要です。
半角スペースを4回打ったり、タブキーを1回打ったりで流派・好みが分かれます。
Pythonはこのインデントと呼ばれるスペースを厳密に見るので、これが正しくないと実行するときにエラーになってしまいます。
for文の使い方
range関数を使った繰り返し処理
1から100までの数字を順番に表示するプログラムを書いてみます。
詳細はコードの後に解説しています。
1 2 3 4 5 6 7 8 9 |
for i in range(1,101): print(i) #1 #2 #3 #・ #・ #・ #100 |
・「for」は繰り返し処理を記述するための命令です。
・「i」は変数です。「i」以外の文字でも構いません。
わかりやすいような変数名にしておくとプログラムを後から読み返すとき、他の人が読むときに理解しやすくなります。
・以下の例では、iの代わりにnumberを変数として使いました。
print関数のカッコの中身(引数)もiからnumberに変えています。
1 2 3 4 5 6 7 8 9 |
for number in range(1,101): print(number) #1 #2 #3 #・ #・ #・ #100 |
・range()は指定した個数、または指定した範囲の数字を作ります。
・range関数で作られた数字の集まりは、シーケンスと呼ばれる型です。シーケンス型は繰り返し処理で扱うことができます。
1 2 3 4 5 6 7 8 9 10 11 |
range(10) #実行結果:range(0,10) #メモ:0~9までの10個のシーケンスである数字の集まりを作る range(0,10) #実行結果:range(0,10) #メモ:0~9までの10個のシーケンスである数字の集まりを作る range(1,101) #実行結果:range(1,101) #メモ:1~100までの100個のシーケンスである数字の集まりを作る |
・range関数は何も指定しなければ0から始まります。また、最後の数字は含まれません。
そのため、range(0,50)とすると0~49になりますし、101~1000を指定したいときはrange(101,1001)になります。
変数の増減幅を指定して繰り返し処理
1から100までの数字を1個飛ばしで表示します。
1 2 3 4 5 6 7 8 9 |
for number in range(1, 101, 2): print(number) #1 #3 #5 #・ #・ #・ #99 |
・1から100までの中で、ループ変数numberを2ずつ増やしながら表示しています。
1からスタートするので次は3、その次は5と増加していきます。
99まで到達すると、次の数字は101になりますが、range関数では100までで指定しているので、
99が最後に表示されて終了します。
・range関数の3つ目の引数(カッコの中の3つ目の数字)で増減幅を指定することができます。
→range(1, 101, 2)
変数を減らしながら繰り返し処理
1から100までの数字を逆から表示します。
1 2 3 4 5 6 7 8 9 |
for number in range(100, 0, -1): print(number) #100 #99 #98 #・ #・ #・ #1 |
range関数でスタートは100、終了は0をしています。
先ほど書いている通り、rangeは最後の数字である0は含まないので、100から1までの繰り返し処理になります。
また3つ目の引数(カッコの中の3つ目の数字)で-1を指定しているので、
100からスタートして1ずつ変数numberは減少していきます。
リストを使った繰り返し処理
リスト内のそれぞれの要素に順番に処理を行うことは非常に多いです。
使用頻度も高いのでここでおさらいします。
リストは数字や文字列、それらを保持する変数を扱うことができるシーケンスです。
リスト内の各要素は追加、変更、削除ができます。また、リストどうしを結合したり、リスト内のある要素まで、もしくはある要素以降だけを抽出することもできます。
以下はリストを使ったfor文の処理です。
リスト内の各要素を順に表示しています。
タプルを使った繰り返し処理
文字列を使った繰り返し処理
辞書を使った繰り返し処理
if文と組み合わせて使う
まとめ
LeetCodeというサイトでfor文とif文を使う練習をしてみましょう。
英語なので大変ですが、とても勉強になりますよ。
Sign of the Product of an Array – LeetCode
このサイトでも解答を書いています。
問題にあたってみてわからなければ、こちらの記事も読んでみてください。
コメント