【基本】Pythonの繰り返し処理|forとwhileを徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年6月)

✔このような方へ向けて書かれた記事となります

「Pythonで繰り返し処理をどのように実装すればいいか?」

「Pythonのループ処理の書き方が知りたい」

「Pythonで繰り返し処理をする実例を見てみたい」

✔当記事を通じてお伝えすること

  • Pythonでの繰り返し処理の基本
  • Pythonにおけるループ処理の書き方や応用
  • Pythonを用いた繰り返し処理の実例

当記事では、Pythonでの繰り返し処理の基本だけでなく、そのループ処理を効果的に活用する方法まで、具体例を用いて詳しく解説しています。

どうぞ最後までお読みいただき、Pythonでの繰り返し処理をマスターしましょう。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

はじめに: 繰り返し処理の重要性

プログラミングの基本中の基本である繰り返し処理について学びます。

  • プログラミングにおける繰り返し処理の役割
  • Pythonでの繰り返し処理の基本

プログラミングにおける繰り返し処理の役割

プログラミングでは、一定の処理を何度も繰り返すことがよくあります。

リストの全要素に対して同じ操作を行ったり、特定の条件が満たされるまで処理を繰り返したりするなどです。

これらの繰り返し処理を効率的に実現するためには、ループと呼ばれる構造を用います。

Pythonでの繰り返し処理の基本

Pythonでは、「for文」と「while文」の2つの主要なループ構造が提供されています。

それぞれの使い方と特性を理解し、適切に使い分けることが重要です。

またPythonでは、ループの制御を行うための「break文」や「continue文」、さらには関数を使った繰り返し処理の強化など、多彩な機能が用意されています。

これらの機能を習得することで、より高度なプログラミングが可能になるでしょう。

Pythonのfor文: 基本概念と利用方法

Pythonの「for文」について、基本的な概念から利用方法まで詳しく解説します。

  • for文とは何ですか?
  • Pythonでのfor文の書き方とルール
  • if文とfor文の組み合わせ
  • break文とその使い方
  • continue文とその使い方
  • for文とelse節の活用

for文とは何ですか?

for文は、一定の条件が満たされるまで、あるいは指定した回数だけ、同じ処理を繰り返すための制御構造の一つです。

Pythonのfor文は、「指定した回数だけ繰り返す」ことに特化しており、リストやタプルなどのイテラブル(反復可能な)オブジェクトから要素を一つずつ取り出して、それぞれに対して操作をおこないます。

# リストの要素を一つずつ処理する例
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    print(fruit)

# 数値の範囲を指定して繰り返し処理をする例
for i in range(5):
    print(i)

# タプルの要素を一つずつ処理する例
person = ("John", 25, "USA")
for item in person:
    print(item)

Pythonでのfor文の書き方とルール

Pythonのfor文の基本的な構文はこちら。

for 変数名 in イテラブルオブジェクト:
# 処理

ここでの「イテラブルオブジェクト」とは、一度にひとつずつ要素を返すことができるオブジェクトのことを指します。

例えばリストや文字列、辞書などです。

# 辞書のキーと値を処理する例
person = {"name": "John", "age": 25, "country": "USA"}
for key, value in person.items():
    print(key, value)

また、for文はインデント(スペースやタブ)を用いてブロックを形成し、このブロック内の処理を繰り返します。

if文とfor文の組み合わせ

if文とfor文を組み合わせることのも可能。

繰り返し処理中に、特定の条件で処理を実行する、といった制御をおこないます。

たとえば、リストの要素を一つずつチェックして、特定の値を持つ要素を探すような処理がこれに該当します。

# リストの要素をチェックして特定の値を持つ要素を探す例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 7

for number in numbers:
    if number == target:
        print("Target number found!")
        break  # 特定の値を見つけたらループを終了する
else:
    print("Target number not found.")

# 文字列の文字をチェックして特定の文字を含む場合に処理を実行する例
message = "Hello, World!"
target_char = "W"

for char in message:
    if char == target_char:
        print("Target character found!")
        break  # 特定の文字を見つけたらループを終了する
else:
    print("Target character not found.")

break文とその使い方

break文は、その文が属している最も内側のループを強制的に終了させます。

なぜbreakを使うというと、無駄なループの実行を避けるため

例えばリスト内に特定の要素を調べたいのであれば、目的の要素が見つかったらそれ以上リストを探さなくても良いでしょう。

break文を使ってループを終了させるのです。

# リストの要素をチェックして特定の値を持つ要素を探す例(break文の使用)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 3

for number in numbers:
    if number == target:
        print("Target number found!")
        break  # 目的の要素が見つかったらループを終了する

# 出力: Target number found!

continue文とその使い方

continue文は、ループにおいて、現在のイテレーションをスキップし、次のイテレーションに進むために使用します。

特定の条件下で、ループ内の残処理をスキップするためのワードです。

例えば、リストの要素を一つずつ処理するループ内で、特定の値を持つ要素だけは処理をスキップしたい場合などに使います。

# リストの要素をチェックして特定の値を持つ要素をスキップする例(continue文の使用)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for number in numbers:
    if number % 2 == 0:
        continue  # 偶数の場合は処理をスキップする
    print(number)

# 出力: 1
#       3
#       5
#       7
#       9

for文とelse節の活用

Pythonのfor文では、else節を使用できます。

else節の中に書かれたコードは、forループが終了した後(break文で終了した場合を除く)に実行されます。

例えばelseでは、リスト内に特定の要素が見つからなかったときの処理を簡潔に書くことができます。

# リスト内に特定の要素が見つからなかった場合の処理(forループのelse節の使用)
numbers = [1, 2, 3, 4, 5]
target = 6

for number in numbers:
    if number == target:
        print("Target number found!")
        break
else:
    print("Target number not found.")

# 出力: Target number not found.

関数を使ってfor文を強化する

このセクションでは、Pythonの特定の関数を使ってfor文を更に強力にする方法について説明します。

for文を使いこなすうえで、必ず知っておきたい関数です。

  • range関数の使い方と例
  • enumerate関数を使った繰り返し
  • zip関数を活用したループ処理

range関数の使い方と例

range関数は、指定した範囲の整数を順に生成するために使用します。

これをfor文と組み合わせることで、特定の回数だけループを回したいときなどに役立ちます。

例えばrangeを使った、「0から9までの数字を順に表示する」というプログラムはこちら。

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

このプログラムは、0から9までの数字を順に画面に表示します。

enumerate関数を使った繰り返し

enumerate関数は、イテラブルなオブジェクト(例えばリストや文字列)を引数にとり、そのオブジェクトの要素とそのインデックスを順に返します。

ループ内要素のインデックスを手軽に取得したいときに使える手法です。

文字列の各文字とそのインデックスを表示する例はこちら。

for i, char in enumerate('Hello, world!'):
    print(f'Character "{char}" is at index {i}')

zip関数を活用したループ処理

zip関数は、複数のイテラブルなオブジェクトを引数にとり、それらの要素を順にペアにして返します

この関数をfor文と組み合わせると、複数のリストを同時にループすることが可能。

2つのリストを同時にループし、それぞれの要素を表示する例を示します。

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 32, 37]

for name, age in zip(names, ages):
    print(f'{name} is {age} years old')

これらの関数を使いこなすことで、Pythonのfor文は非常に強力なツールになります。

while文の基本: 無限ループと適切な使い分け

while文とその使用方法、そしてfor文との比較について詳しく見ていきます。

for文だけでなく、whileが適した場面もあるのです。

  • while文とは?
  • while文とfor文の違い
  • どう使い分けるのか?

while文とは?

while文は、条件がTrueである限りブロック内のコードを繰り返し実行する制御構造です。

以下はwhile文の基本的な形式です。

while condition:
    statement

この構造では、「condition」がTrueと評価される限り、「statement」が繰り返し実行されます。

例えば次のプログラムは、1から5までの数字を順に表示します。

i = 1
while i <= 5:
    print(i)
    i += 1

while文とfor文の違い

while文とfor文の主な違いは、ループの繰り返し条件です。

  • for文:イテラブル(リストや文字列など)のすべての要素を繰り返す
  • while文:指定した条件がTrueの間、無限に繰り返す

while文は、実行回数が事前に不明または終了条件が明示的に必要な場合に便利です。

どう使い分けるのか?

for文とwhile文はどちらも繰り返し処理に使用されますが、その使い方は異なります。

一般的に、繰り返す要素がイテラブルで決まっている場合、for文を使用してください。

特定の条件下で繰り返し、その繰り返し回数が予めわからない場合は、while文を使用します。

# for文の例:イテラブルな要素の繰り返し
fruits = ["apple", "banana", "orange"]

for fruit in fruits:
    print(fruit)

# 出力: apple
#       banana
#       orange


# while文の例:条件が満たされている間の繰り返し
count = 0

while count < 5:
    print(count)
    count += 1

# 出力: 0
#       1
#       2
#       3
#       4

これらを理解し、適切に使い分けることが、効率的なプログラムを書くための重要なスキルです。

for文とリストの相性: 効率的な操作方法

ここでは、リスト(配列)とfor文の組み合わせの強力さとその利用方法について説明します。

  • リストと繰り返し処理の基本
  • リスト内包表記の活用

リストと繰り返し処理の基本

Pythonのリストは、異なるデータ型の要素を複数格納できる便利なデータ構造です。

for文と組み合わせることで、リストの各要素に対して一連の操作が可能です。

例えば次のコードでは、リスト内の各要素を順に表示します。

sports = ["soccer", "basketball", "tennis"]

for sport in sports:
    print(sport)

# 出力: soccer
#       basketball
#       tennis

リスト内包表記の活用

Pythonのリスト内包表記は、新たなリストを生成するためのコンパクトで読みやすい方法です。

for文と組み合わせることで、リスト内の各要素に対して操作を行い、その結果を新たなリストに格納できます。

次の例では、各フルーツ名に”sport: “という文字列を付け加え、新たなリストを作成しています。

sports = ["soccer", "basketball", "tennis"]
new_list = ["sport: " + sport for sport in sports]
print(new_list)  
# ['sport: soccer', 'sport: basketball', 'sport: tennis']

リスト内包表記を活用すれば、コードをより簡潔にし、可読性を高めることが可能です。

まとめ

当記事では、以下のことを学習してきました。

  • for文とwhile文の基本的な使い方
  • for文でのrange、enumerate、zip関数の活用
  • while文の制御
  • for文とリストの組み合わせ

これらの知識を活用することで、あなたのプログラムはより効率的かつスマートになるでしょう。

練習問題と解答例

余力がある方に向けて、Pythonでの繰り返し処理について理解を深めるための練習問題をいくつか提示します。

下記の問題にチャレンジし、自分の理解度を確認してみましょう。

問題

  1. 1から10までの整数を順番に出力するfor文を書いてみましょう。
  2. 与えられたリストのすべての要素を2倍にして新たなリストを作成するプログラムをリスト内包表記を使用して書いてみましょう。
  3. 1から100までの整数のうち、3の倍数だけを出力するプログラムを書いてみましょう。
  4. while文を用いて、ユーザーからの入力が’q’である場合にループを終了するプログラムを作成してみましょう。

回答

それぞれの問題に対する解答例は、以下の通りです。

以下に、それぞれの要求に基づいたPythonのコード例を示します。

1から10までの整数を順番に出力するfor文の例

for i in range(1, 11):
    print(i)

与えられたリストのすべての要素を2倍にして新たなリストを作成するリスト内包表記の例

original_list = [1, 2, 3, 4, 5]
new_list = [x * 2 for x in original_list]
print(new_list)

1から100までの整数のうち、3の倍数だけを出力する例

for i in range(1, 101):
    if i % 3 == 0:
        print(i)

while文を用いて、ユーザーからの入力が’q’である場合にループを終了する例

user_input = ""
while user_input != "q":
    user_input = input("Enter a value ('q' to quit): ")

タイトルとURLをコピーしました