Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのループ入門:forループとwhileループの使い方を実例付きで解説

ループは、あらゆるプログラミング言語やスクリプト言語において欠かせない基本機能です。同じ処理を何度も繰り返し実行できることは、プログラミングの根幹を成す要素といえます。

Pythonでは、forループとwhileループの2種類を使って繰り返し処理を実現します。この記事では、具体的なコード例とともに、それぞれの使い方を詳しく解説します。

Pythonのforループ

Pythonのforループはさまざまな場面で活用できます。最もシンプルで一般的な使い方は、リストなどのコレクションの要素を順番に取り出して処理する「イテレーション(反復処理)」です。

基本構文

for i in collection:
    statement

collectionにはリスト、セット、rangeなどが指定でき、変数iには反復処理の各ステップで要素の値が順番に代入されます。

my_list = [1, 2, 3, 4, 5]
for i in my_list:
    print("Value is:", i)

実行結果:

Value is 1
Value is 2
Value is 3
Value is 4
Value is 5

リストの先頭から末尾まで、要素が順番に処理されているのがわかります。

range()を使ったforループ

Pythonのrange()メソッドは、指定した範囲内の一連の数値シーケンスを生成するために使われます。リストは持っていないけれど、決められた回数だけ処理を繰り返したい場合に便利です。

for i in range(5):
    print(i)

実行結果:

0
1
2
3
4

注意: 出力される値は0から5ではなく、0から4です。

range()関数は、デフォルトでは0から始まり、1ずつ増加し、指定した数値の手前で終わる数値のシーケンスを返します。

開始値や増加幅を変更したい場合は、引数を3つ指定します。

for i in range(10, 30, 5):
    print(i)

実行結果:

10
15
20
25

この例では、10から始まり、5ずつ増加しながら、30の手前(つまり25)で終了します。

else節を持つforループ

forループ内のelseキーワードは、ループがすべて完了した後に実行されるコードブロックを指定します。

for i in range(6):
    print(i)
else:
    print("Finished looping.")

実行結果:

0
1
2
3
4
5
Finished looping.

注意: if文では条件が偽の場合にのみelseブロックが実行されますが、forループではbreakされない限り、elseブロックは必ず実行されます。

ネストしたforループ(入れ子構造)

forループの中に別のforループを記述することもできます。これを「ネストしたループ(入れ子のループ)」と呼びます。

「内側のループ」は、「外側のループ」の各反復ごとに1回ずつ実行されます。

例:

numbers = [1, 2, 3]
chars = ["a", "b", "c"]

for i in numbers:
    for y in chars:
        print(i, y)

実行結果:

1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 b
3 c

Pythonのwhileループ

whileループは、条件が真(True)である限り、一連のステートメントを繰り返し実行します。

例:

i = 1
while i < 5:
    print("Hello world")
    i = i + 1

注意: 変数iの値を必ず更新する必要があります。そうしないと条件が常に真のままとなり、無限ループになってしまいます。

else節を持つwhileループ

whileループ内のelse文は、条件が偽(False)になった時点で一度だけ実行されます。

例:

i = 1
while i < 5:
    print("Hello world")
    i = i + 1
else:
    print("The execution has ended")

実行結果:

Hello world
Hello world
Hello world
Hello world
The execution has ended

ループでのbreakの使い方

break文は、特定の時点でループの実行を中断したい場合に使用します。

次の例では、文字「c」に到達した時点でループを停止します。

my_list = ['a', 'b', 'c', 'd', 'e']
for i in my_list:
    print(i)
    if i == 'c':
        print("'c' encountered. Breaking the loop")
        break

実行結果:

a
b
c
'c' encountered. Breaking the loop

ループでのcontinueの使い方

continueキーワードは、特定の反復において残りの処理をスキップし、次の反復へ進みたい場合に使用します。

以下の例では、文字「c」に遭遇したときだけ出力をスキップし、ループを継続します。

my_list = ['a', 'b', 'c', 'd', 'e']
for i in my_list:
    if i == 'c':
        continue
    print(i)

実行結果:

a
b
d
e

「c」が出力されていない点に注目してください。「c」をスキップした後も、ループは引き続き「d」と「e」を出力しています。

まとめ

  • forループとwhileループは、どちらも繰り返し処理(イテレーション)に使用されます。
  • 一連のステートメントを複数回実行したり、リストなどのコレクションを反復処理したりする際に活用できます。
  • Pythonのforループはrange()メソッドと組み合わせて使えます。下限と上限の両方を指定することも、上限のみを指定することも可能です。後者の場合、下限は0とみなされます。
  • ループの実行回数が事前にわかっている場合はforループを使用します。
  • whileループは条件を持ち、その条件が偽になるまで実行を続けます。
  • whileループには、条件を終了させる仕組みが必須です。なければ無限ループになります。
  • ループの実行回数が事前にわからない場合はwhileループを使用します。
  • elseブロックはforループとwhileループの両方で使用でき、breakされない限り必ず実行されます。
  • breakキーワードはループの実行を強制終了します。breakに到達すると、それ以降の反復は行われません。
  • continueキーワードは現在の反復をスキップし、次の反復へ直接ジャンプします。
  1. PythonのforループでTkinterボタンを作成する方法

    TkinterのButtonウィジェットは、アプリケーションの実行中にイベントを処理し、さまざまなアクションを実行するうえで非常に便利な機能です。Tkinterのボタンは、Button(parent, text, option...) コンストラクタを使用して作成できます。このコンストラクタを活用することで、ループ処理の中で複数のボタンを効率的に生成することも可能です。 サンプルコード 以下の例では、Pythonの for ループを使用して、指定した範囲内に複数のボタンを作成します。 #必要なライブラリをインポート from tkinter import * from tkinter imp

  2. Pythonのwhileループ入門:基本から実践的な使い方まで徹底解説

    プログラミングは、他の人を助けるためのものを作ることですが、それ以上に、反復的で複雑なタスクを自動化することに大きな意味があります。Pythonのwhileループを使えば、コードのまとまりを繰り返し実行でき、多くの処理を一度に自動化することが可能です。この記事では、Pythonのwhileループの使い方を詳しく解説します。まず、whileループが何をするもので、どのような場面で最適なのかを見ていきましょう。Pythonのwhileコマンドとはwhileループの作成方法に入る前に、まず基本的な概念を整理しましょう。簡単に言えば、whileコマンドは、定義されたコードブロック(「ステートメント」)