目標
「for文」について理解する。
「range関数」について理解する。
反復構造(for文)
基本制御構造の復習
基本制御構造とは(再掲載)
「制御構造」のうち、基本とする3つの構造として「順次構造」「選択構造」「反復構造」が存在します。これらは「基本制御構造」と呼ばれて、次の構造をもっています。
- 「順次構造」…プログラムを書かれた順番で実行します。
- 「選択構造」…条件の成立・不成立によって実行するプログラムを選択します。
- 「反復構造」…条件の成立・不成立によって実行するプログラムを反復します。
「for文」の記述
「for文」の文法
pythonの「for文」では「イテラブルオブジェクト」を利用して繰り返しを行います。(他のプログラミング言語ではカウント数を利用して繰り返しを行わせる方法があります。)
pythonの「for文」はJavaの「拡張for文」やJavaScript の「for…of文」にあたります。
具体的には次のように記述します。この場合はイテラブルオブジェクトの部分にリストを設定しています。
例えば下のプログラムの実行結果や動きは次のようになります。
for inner_value in [ 1, 2, 3, 4, 5 ]:
print(inner_value)
実行結果
動作
イテラブルオブジェクトを変数で利用する
イテラブルオブジェクトは変数を利用して指定することも可能です。
iterable_obj = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
for inner_value in iterable_obj :
print(inner_value)
実行結果
「range関数」と「rangeオブジェクト」
「range関数」と「rangeオブジェクト」の概要
range関数 … range型のオブジェクトを生成することのできるpythonの組み込み関数です。
rangeオブジェクト … 0個以上で順序を持つ(シーケンス)連続した数の集まりであり、かつイミュータブルなオブジェクトです。rangeオブジェクトはrange関数で生成します。
イテラブルオブジェクトの分類
イテラブルオブジェクトには次のものがあります。シーケンスとは0個以上で順序を持つオブジェクトで。dict、set、frozensetは順序がないのでシーケンスではありません。
list型 | ミュータブル | シーケンス |
tuple型 | イミュータブル | シーケンス |
range型 | イミュータブル | シーケンス |
str型 | イミュータブル | テキストシーケンス |
dict型 | ミュータブル | シーケンスではない |
set型 | ミュータブル | シーケンスではない |
frozenset型 | イミュータブル | シーケンスではない |
bytes型 | イミュータブル | バイナリシーケンス |
bytearray型 | ミュータブル | バイナリシーケンス |
memoryview型 | ミュータブル(イミュータブル) | バイナリシーケンス |
「range関数」の文法
「rangeオブジェクト」は「range関数」を利用して生成します。この「range関数」は次のように記述をします。
range(start, stop, step)
※「start」と「step」は省略が可能です。
※「stop」で指定した数値はrangeオブジェクトの値には含まれません。
range(stop)
※指定数がひとつの場合は「stop」が指定されたものとなります。
※この場合、「start」は「0」、「step」は「1」。
range(start, stop)
※指定数がふたつの場合は「start」と「stop」が指定されたものとなります。
※この場合、「step」は「1」。
range(start, stop, step)
※この場合、すべての引数を指定したことになります。
「range関数」の利用
「start」に「2」、「stop」に「10」、「step」に「2」を指定すると、「2」から「10未満」で2つごとに数が利用されrangeオブジェクトが生成されます。
range_obj = range(2, 10, 2)
for inner_value in range_obj :
print(inner_value)
実行結果
「stop」だけ指定した場合は「start」に「0」、「step」に「1」が指定されたものとなります。
range_obj = range(5)
for inner_value in range_obj :
print(inner_value)
実行結果
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。