見出し画像

Pythonの勉強するよ【フロー制御編⑥】

どもども。いつの間にか9月も中旬ですが、皆さんいかがお過ごしでしょうか。少し涼しくなってきましたが、体調を崩さないように気を付けましょう。
前回はwhile文について勉強しました。

【前回の復習】
・while文のブロックは、条件式がTrueの間ずっと実行される。
・while文の条件式がTrueの場合、無限ループが発生する。
・ループはbreak文を使うことでいつでも抜けることができる。
・continue文でループの先頭に戻ることができる。

今回はfor文とrange()関数について勉強していきます。フロー制御編もいよいよ終わりですね。

2.7.7 for文

while文は条件式がTrueの時にループを行っていました。for文は、同じようにループを行うのですが、指定回数繰り返したり、データを一つずつ取り出したりするのに使用します。

for 変数名 in データの集まり:
    コードのブロック

実際のコードを見てみましょう。

list = [ 10, 20, 30]
for i in list:
  print(i)


【実行結果】
10
20
30

変数listはリスト型という値で、今回の場合、[10,20,30]というデータの集まりです。(リスト型についてはまた解説します。)
for文はデータの集まりを一つずつ取り出すので、今回の場合、変数listのデータを一つずつ取り出していきます。
取り出した値は、for文を書く時の変数に代入されていきます。
上のコードをひとつずつ見ていきましょう。
まず、listの最初に設定されている10がfor文の変数iに代入されます。
その後、print(i)が実行されるので、10が表示されます。
print(i)が実行され、for文の最後の行に到達すると、for文は変数listの次の値20を取り出し、変数iに代入します。これを最後まで繰り返し、すべてのデータを取り出し終わると、for文のブロックから抜けます。

【Point】
・for文は指定回数繰り返したり、データの集まりからデータを一つずつ取り出すときに使う。

指定回数繰り返す方法は、range()関数と一緒に説明します。

2.7.8 range()関数

range()関数は、一般的に、 for ループにおいて特定の回数のループに使われます。
例えば、次のように記載します。

for i in range(5):
	print(i)
【実行結果】
0
1
2
3
4

上の場合、繰り返したい回数をrange()関数の引数に渡しています。(今回は5回繰り返したので、5を渡している)
その結果、print(i)が5回繰り返されています。この時、変数iは0からスタートすることと、変数iがインクリメントされていくことに注意しましょう。

range()関数は、引数を1つだけ渡すほかに、引数を2つ渡すものと、引数を3つ渡すものがあります。
それぞれの動きを見てみましょう。

引数2つの場合:

for i in range(2, 10):
	print(i)
【実行結果】
2
3
4
5
6
7
8
9

引数を1つだけ渡したときは、変数iは0からスタートしましたが、今回は第1引数に2を設定しているため、2からスタートします。このように、引数を2つ渡すと、第1引数でスタートする値、第2引数で終了する値を設定することができます。

引数3つの場合:

それでは、引数を3つ渡した場合はどのようになるのでしょうか?

for i in range(1, 20, 2):
	print(i)
【実行結果】
1
3
5
7
9
11
13
15
17
19

変数iが1から始まっているので、引数が2つの場合で説明した理由と同じです。今回の相違点は、変数iの増加量です。先ほどまでは、変数iは1ずつ値が増えていきましたが、今回は2ずつ増えています。これは第3引数で増加量2を設定しているためです。
また、この第3引数には、負の値も設定することができます。

for i in range( 10 , 1 , -1):
	print(i)
【実行結果】
10
9
8
7
6
5
4
3
2

このように、スタート値に10、終了値に1、増加量に-1を設定すると、10から逆順に値を表示することができます。

【Point】
・range()関数は、一般的に、 for ループにおいて特定の回数のループに使われる。
・range()関数は、引数を1つだけ渡すもの、2つ渡すもの、3つ渡すものがある。
・1つだけ渡すもの:特定の回数実行するときに使う。
・2つ渡すもの:特定の範囲実行したいときに使う。
・3つ渡すもの:特定の範囲で、一定の増加量で増減するときに使う。

画像1

まとめ

いかがでしたでしょうか。いろいろ書きましたが、まとめると下のようになります。

【まとめ】
・for文は指定回数繰り返したり、データの集まりからデータを一つずつ取り出すときに使う。
・range()関数で回数を指定できたりする。

ついにフロー制御が一通り終わったので、次回からは関数についてやっていこうと思います。ではでは。

P.S.

関数の前にAnovaの良さを伝えたい。

この記事が気に入ったらサポートをしてみませんか?