僕は三十歳、まだまだ成し遂げたいことがある。
スティーブ・ジョブズ/アメリカ合衆国/起業家/実業家
Pythonプログラミングでは、繰り返し処理が頻繁に使用されます。この記事では、Pythonを学び始めたばかりの人向けに、繰り返し処理を行うための構文であるwhile文とfor文について解説します。
これらの構文を理解し、実践で使えるようになることで、効率的なプログラムを書くことができます。
繰り返し処理とは?
![繰り返し処理とは?](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/ゲートのコピーのコピー-3-1.jpg)
繰り返し処理とは、ある条件が満たされている間、またはあらかじめ決められた回数だけ、特定の処理を繰り返すことです。
Pythonでは、while文とfor文の2つの構文を使って繰り返し処理を行います。
while文の基本構文
![繰り返し処理 - while文](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/ゲートのコピーのコピー-7.jpg)
Pythonのwhile文は、指定した条件が真(True)である間、特定の処理を繰り返し実行します。基本的な構文は次のようになります。
while 条件式:
処理
この構文では、初めに「条件式」が評価されます。もし条件式が真である場合、インデントによって区切られたブロック内の「処理」が実行されます。
処理の実行後、再度条件式が評価され、真であれば「処理」が再び実行されるという流れです。このサイクルは、条件式が偽(False)となるまで続きます。
「処理」の部分には任意のPythonコードを記述することが可能です。ただし、無限ループ(終わることのないループ)を避けるためには、ループ内の処理でいつかは条件式が偽になるように設計することが重要です。
while文の例: 基本的な使い方
では、実際にPythonのwhile文を使ってみましょう。次のコードでは、変数iの値が10以下の間、iの値を出力し、次にiに1を加算する動作を行います。
i = 1
while i <= 10:
print(i)
i += 1
このプログラムを実行すると、1から10までの数値が順番に出力されます。
初めにiの値は1で、各ループの終わりでiに1が加算されます。iの値が10を超えると、whileの条件式i <= 10が偽となります。その結果、ループが終了します。
この例は、while文の基本的な使い方を示すもので、特定の条件下で操作を繰り返すための一般的なパターンを表しています。
for文の基本構文
![for文の基本構文](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/プログラミング-1.jpg)
次にもう1つの繰り返し処理「for文」を見ていきましょう。
for文はPythonの重要な制御構造で、シーケンス(リスト、タプル、文字列など)の各要素に対して順番に操作を行います。その基本的な構文は次の通りです。
for 変数 in シーケンス:
処理
この構文では、「シーケンス」の各要素が「変数」に一つずつ代入され、その都度「処理」が実行されます。全ての要素が順番に処理された後、for文の実行は終了します。
「処理」の部分には任意のPythonコードを記述することが可能です。「シーケンス」は、要素を順番に取り出すことが可能な任意のデータ構造(リスト、タプル、文字列、辞書のキーなど)を指定できます。
for文の利用により、データ群に対する反復的な操作を簡潔かつ直感的に記述することができ、コードの可読性を高める助けとなります。
for文の例: 基本的な使い方
では、実際にPythonのfor文を使ってみましょう。次の例では、リストfruitsの要素を順に取り出し、それぞれの要素を表示します。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
このプログラムを実行すると、”apple”、”banana”、”cherry”というリストfruitsに格納された果物の名前が順番に出力されます。
for文はリストfruitsの要素を一つずつ取り出し、変数fruitに代入します。その後、print関数がその値を出力します。このプロセスはリストの全ての要素が処理されるまで繰り返されます。
この例は、for文の基本的な使い方を示しており、シーケンス(この場合はリスト)の各要素に対して一定の操作(この場合は出力)を繰り返す一般的なパターンです。
range関数と一緒に使うと便利なfor文
![range関数と一緒に使うと便利なfor文](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/プログラミング-2.jpg)
Pythonでは、range関数を使って、繰り返し処理を行うことができます。range関数は、指定された範囲の整数のシーケンスを生成します。
for文と組み合わせて使用することで、繰り返し処理を効率的に実行することができます。
range関数の使い方
range関数は、以下のように使用します。
range(stop) # 0からstop-1までの整数のシーケンスを生成
range(start, stop) # startからstop-1までの整数のシーケンスを生成
range(start, stop, step) # startからstop-1までの整数のシーケンスを生成し、step間隔で要素を取り出す
for文とrange関数の例
次の例では、for文とrange関数を使って、1から10までの数値を順番に表示します。
for i in range(1, 11):
print(i)
このプログラムは、1から10までの数値を順番に表示します。
while文を使った例と同じ結果が得られますが、for文とrange関数を使った方が、コードがシンプルで読みやすくなります。
2つのループ制御
![2つのループ制御](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/プログラミング-3.jpg)
繰り返し処理を強制終了する場合や、特定のデータ処理をスキップしたいときには、ループ制御を活用します。
Pythonのループ制御には「break文」と「continue文」があります。2つのループ制御についての説明と具体的な使用例を見ていきましょう。
break文
まずは「break文」です。この文はループの中で使用され、実行するとその時点でループが即座に終了します。以下に、break文を使用した例を示します。
for i in range(1, 11):
if i == 5:
break
print(i)
このコードを実行すると、0から4までの数字が出力され、5でループが終了します。これは、iが5になった時点でbreak文が実行され、その時点でforループが終了するからです。
continue文
次に「continue文」です。この文もループの中で使用されますが、break文とは異なり、ループの残りの部分をスキップし、次の繰り返しに進みます。
以下に、continue文を使用した例を示します。
for i in range(10):
if i == 5:
continue
print(i)
このコードを実行すると、0から9までの数字が出力されますが、5だけが出力されません。これは、iが5の時にcontinue文が実行され、その後のprint文がスキップされるからです。
このように、break文とcontinue文は、特定の条件下でループの動作を制御するために使われます。これらの文を理解しておくと、より複雑なプログラムを効率的に書くことができます。
まとめ
![まとめ](https://sp-ao.shortpixel.ai/client/to_webp,q_lossy,ret_img,w_500,h_300/https://30s-proglife.com/wp-content/uploads/2023/05/ゲートのコピーのコピー-1-1.jpg)
本記事では、Pythonの繰り返し処理を行うための構文であるwhile文とfor文について解説しました。
これらの構文を理解し、実践で使えるようになることで、効率的なプログラムを書くことができます。
繰り返し処理はプログラミングにおいて基本的なスキルですので、しっかりとマスターしてください。次回は、関数の定義と使用方法について解説します。
おまけ: リスト内包表記
Pythonには、繰り返し処理を行う際に、リスト内包表記という簡潔な方法があります。
リスト内包表記を使うと、コードがシンプルで読みやすくなります。リスト内包表記を使った例を見てみましょう。
squares = [x ** 2 for x in range(1, 11)]
print(squares)
このプログラムは、1から10までの数値の2乗をリストに格納し、表示します。for文を使って書くよりも短く、直感的に理解しやすいコードになります。
リスト内包表記は、Pythonプログラミングでよく使用されるので、慣れておくと便利です。
ただし、複雑な処理や多重ループの場合は、リスト内包表記が読みにくくなることもあるので、適切な使い方を心掛けましょう。