検索

キーワード


目次

pythonにおける繰り返し(for, while)【初心者向け解説記事】

  • 公開日:2023-05-03 19:35:58
  • 最終更新日:2023-05-03 19:33:35
pythonにおける繰り返し(for, while)【初心者向け解説記事】

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

繰り返しとは?

繰り返しは、プログラムの一部を繰り返し実行するための制御構造です。Pythonでは、forループとwhileループの2種類の繰り返し構造があります。これらを使うことで、指定した回数や条件に応じて処理を繰り返すことができます。繰り返し処理は、データ処理やシミュレーションなど様々な場面で使用されます。


forループ

forループの基本構文

forループは、指定された回数だけ処理を繰り返します。基本的な構文は以下の通りです。

for 変数 in range(繰り返し回数):
    処理

繰り返しの回数は、range関数で指定します。変数には、繰り返しの各ステップで異なる値が順番に代入され、処理が実行されます。

例としては、以下のようなコードがあります。

for i in range(5):
    print(”Hello, World!”)

このコードを実行すると、以下のように出力されます。

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!


forループとrange関数

指定した回数だけ繰り返しを行いたい場合、range関数を使います。range関数は、指定した回数分の連続した整数を生成します。これをforループと組み合わせることで、繰り返し回数を制御できます。range関数は以下のように使用できます。

range(stop)
range(start, stop)
range(start, stop, step)

ここで、それぞれのパラメータの意味は以下のようになります。

 stop: 生成される整数の上限(この値は含まれない)

 start: 生成される整数の下限(入力しない場合は0)

 step: 生成される整数の間隔(入力しない場合は1)

range関数の使い方

range(stop)

引数を1つのみ指定すると、0から始まり、その引数未満の範囲整数を生成します。例として、以下のコードを考えてみます。

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

これを実行すると、以下のようになります。

0
1
2
3
4


range(start, stop)

二つの引数を指定すると、最初の引数から始まり、二つ目の引数未満の範囲で整数を生成します。例として、以下のコードを考えてみます。

for i in range(2, 7):
    print(i)

これを実行すると、以下のようになります。

2
3
4
5
6


range(start, stop, step)

三つの引数を指定すると、最初の引数から始まり、二つ目の引数未満の範囲で、三つ目の引数(間隔)で指定したステップ間隔で整数を生成します。例として、以下のコードを考えてみます。

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

これを実行すると、以下のようになります。

2
4
6
8

また、マイナスの値を入れることで、大きい数から小さい数という順で整数を生成することもできます。

for i in range(5, 0, -1):
    print(i)

この例では、出力は以下の通りになります。

5
4
3
2
1


forループのネスト

forループを入れ子にすることで、複数の繰り返し処理を組み合わせることができます。このような構造のループをネストと言います。これは、2次元配列や、複雑な繰り返しパターンを扱う際に便利です。ネストされたforループは、外側のループが1回実行されるごとに、内側のループが全て実行されます。ネストを使ったコードの例は以下の通りです。

for i in range(3):
    for j in range(2):
        print(f"i: {i}, j: {j}")

print(f"i: {i}, j: {j}")は、Pythonのf-string(フォーマット済み文字列リテラル)を使って、変数iとjの値を含んだ文字列を表示する方法です。出力は以下の通りになります。

i: 0, j: 0
i: 0, j: 1
i: 1, j: 0
i: 1, j: 1
i: 2, j: 0
i: 2, j: 1


whileループ

whileループの基本構文

whileループは、指定した条件が真(True)である間、繰り返し処理を行います。基本的な構文は以下の通りです。

while 条件式:
    処理

条件式が真である限り、処理が繰り返されます。ループを抜けるためには、条件式が偽(False)になる必要があります。whileループを使ったコードの例は、以下の通りです。

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

このコードでは、「count < 5」が真である限り、countに1を加え続けます。countの値が5になると、「count < 5」が偽になるため、ループが止まります。出力は以下の通りです。

0
1
2
3
4


無限ループとその対処法

whileループで条件式が常に真(True)のままであると、無限ループが発生します。無限ループはプログラムが停止しなくなるため、避ける必要があります。無限ループを防ぐためには、適切な条件式を設定し、ループ内で条件式が偽(False)になるように処理を記述することが重要です。無限ループを発生させるプログラムの例は、以下の通りです。

count = 0
while True:
    count += 1
    print(count)

このコードは、1から順番に数字を出力しますが、条件式が常にTrueであるため、無限に数字を出力し続けます。


ループの制御

ループ内で処理を柔軟に制御するために、breakcontinueという2つのキーワードが利用できます。これらは、forループとwhileループの両方で使用することができます。


break文

break文は、ループを途中で終了させるために使用されます。breakが実行されると、ループはすぐに終了し、ループの外側にある次の処理に移ります。以下は、breakを使ったコードの例です。

for i in range(1, 11):
    if i == 5:
        break
    print(i)

この例では、iが5になった時点でループが終了し、以降の繰り返し処理がスキップされます。


continue文

continue文は、ループ内での現在の繰り返し処理をスキップし、次の繰り返し処理に移行するために使用されます。以下は、continueを使ったコードの例です。

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

この例では、iが偶数の場合、print(i)をスキップして次の繰り返しに移行します。その結果、奇数だけが表示されます。


まとめ

Pythonの繰り返し処理には、forループとwhileループがあり、それぞれ異なる目的や状況に応じて使用されます。forループは、シーケンスの要素を処理する場合や決まった回数の繰り返しを行う場合に適しており、whileループは、特定の条件が満たされるまで繰り返しを行う場合に適していますが、無限ループが発生する危険性があります。繰り返し処理を使いこなすことで、効率的なプログラムを作成することができます。初心者のうちは、FizzBuzz問題などの繰り返し処理の構文を使った簡単なプログラムを作成して、実践的な理解を深めましょう。


【著者】

ゆうさい

フォワードソフト株式会社のエンジニア。Java、Python、JavaScript、C#などの言語の他、クラウドやネットワーク技術を勉強しています。PythonやVBAを使った自動化で楽をする方法を考えるのが好きです。 最近はジェネレーティブAIの業務利用に関する検証を行っています。 資格を通じて知識を吸収することを心がけており、セキュリティスペシャリスト、データベーススペシャリスト、応用情報技術者、Oracle Certified Java Programmer Gold SE 11、Pythin3 エンジニア認定試験、HTML5プロフェッショナル認定試験レベル2、AWSプラクティショナーなどの情報資格を保有しています。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート