for 文(繰り返し処理)の使い方

こんばんは☆蓬莱梨乃です♡

今日は先日予告した for 文の使い方について説明します。

for 文とは同じ処理(動き)を繰り返したい時に使用します。

例えば、

print (1)
print (2)
print (3)
print (4)
print (5)
・・・

と 100 まで表示したい場合に、同じように 100 まで書けば可能なのですが、1000 とか言ったら骨が折れる作業ですよね?
(あたたたたたっ!(笑))

ですが!
そんなことをしなくても、大丈夫なのです!!

この for 文を使えば、めんどくさいコピーとかしなくても OK !

早速説明します♡

for 文の使い方

さて、やり方はいくつかあるので、順に紹介していきます。まずは 1 つ目の方法。

リストから値を 1 つずつ取り出す方法

これはまた後日このテーマで取り上げますが、リスト、タプル、辞書など、複数の値が格納されているオブジェクト(うーん、「オブジェクト」というのもきっとあまり聞かない難しい言葉ですよね。ここでは「部品」みたいな意味だと思っていただければ・・・が)のことで、イテラブルと呼ばれています。←また変な横文字が・・・覚えにくい。まぁ今後も補足し続けるので覚えなくていいですよ(笑)

【リスト】
イテラブルの 1 つ、リストとは [] でくくって、それぞれの値を “,(カンマ)” で区切ることにより、作成することができます。

例えば、

fruits = [“りんご”, “みかん”, “バナナ”, “ブルーベリー”]
(文字列なので ” ” でくくってくださいね~)

とします。これで fruits という名前のリストに、”りんご”, “みかん”, “バナナ”, “ブルーベリー” という果物が入っているということになります。

そして

for name in fruits:
<Tab>print (name)
(print の頭はインデント(字下げ)しないといけないのですが、インデントは Tab キーを押して行います。上記例では本来 Tab が 1 つ入るのですが、ブログで Tab を表せないので、<Tab> と記載しています。)

とすると・・・

こんな感じに

りんご
みかん
バナナ
ブルーベリー

と、 fruits リストから順番に取り出され、name (リストから取り出したものを入れるために作った変数。名前は何でも良い) に格納される。
そして print (name) で、その name に格納された文字列を順番に表示します。

つまり、

lists = [“list1”, “list2”, “list3, “list4”]
for <好きな変数> in lists: ←最後は : (コロン) をつける
<Tab>print (<好きな変数>) ←繰り返す処理は字下げする。字下げは Tab キーを押す。

という感じです。

また、リストを直接指定し、

for a in [1, 2, 3, 4, 5]:
<Tab>print (a)

などとしても良いです。

上記 “a” に当たる変数は何でも良いのですが、数字の繰り返し処理の場合では、”i” や “n” にすることが一般的に多いようです。

 for i in [1, 2, 3, 4, 5]:
<Tab>print (i)

みたいな感じです。

これは、i には integer (整数) の頭文字、n は number (数値) の頭文字であることに由来して、そうすることが慣例となっているからのようです。

【数値の繰り返し処理】

さて、5 とかまでなら良いですが、100 とか 1000 とかになると [1, 2, 3, 4, ・・・] みたいなのもしんどいですよね。

Python にはそういう問題を解消する range 関数というものが存在します。
range 関数は以下のように使います。

range (開始値, 終了値, ステップ) 
(ステップはいくつおきに数えるかを設定するもので、省略すると 1 になります。今回ステップは省略します。)

しかし、ここで注意する点があります。

例えば 1 ~ 5 まで、5 回繰り返す場合、単純に

range (1, 5)

と書くと、4 回しか繰り返されません。これは、実は「終了値」というのが、「終了する値未満」という意味で、5 にすると 5 未満である 4 までしか数えられず、

1, 2, 3, 4 の 4 回しか繰り返されないことになってしまうのです。
(いや~、ややこしくて嫌になっちゃいますね(笑))

そのため、
range (1, 6)
と書けば 5 回繰り返されますが、わかりにくいですよね。

そこで、救済策があるのですが、
range (0, 5)
と 0 から数えるようにすれば、すっきりしますので、このように書く例が多いです。

また、range (開始値, 終了値, ステップ) の 開始値も実は省略可能で、省略すると 0 を設定したものと同様になります。
(えっ、そうなの!?先に言ってよ~。と思ったかもしれませんが、本来の仕様の説明もしたかったので、ご了承ください。。。)

つまり、
range (5) とすると
range (0, 5, 1) と同様となり、5 回繰り返されるのです。これは厳密に言えば、5 を指定したから 5 回なのではなくて、

0, 1, 2, 3, 4 と数えられて 5 回繰り返されているということです。
でも、range (繰り返したい回数) と考えると合ってますから、そのほうがわかりやすいですよね(笑)

そんな感じで、100 まで表示したいときはこのように書きます。

 for i in range (100)
<Tab>
print (i + 1)

こんな感じで出力されます。


まとめ

for 文、ちょっと説明が長くなってしまいましたが、わかりましたでしょうか。
ぜひ、活用していただければ幸いです。

それでは~!蓬莱梨乃でした♡

グッバーイ!!

Follow me!