ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Python - 繰り返し:while文、for文

初めに

 Python では、while 文と for 文で繰り返し処理を行うことができます。本記事では、これら2つの使い方をまとめます。

while 文

while 文の使い方

 while 文は条件式が true の間、while ブロック内のコードを繰り返し処理します。

# 条件式がtrueの間、while節(インデントされたブロック)を繰り返し実行する
while 条件式:
    処理1
    処理2
    ...

(例)

# 1から5までの数字を表示する例

# カウンターを初期化
counter = 1

# whileループを開始
while counter <= 5:
    print(counter)  # カウンターの値を表示
    counter += 1    # カウンターを1増やす

# ループ終了後に表示
print("ループ終了")

(出力結果)

1
2
3
4
5
ループ終了

 条件式が常に true の場合、無限ループが発生し、プログラムがいつまでも終了しません。

for 文

for 文の使い方

 for 文は、ある範囲内の値を使って一連の処理を繰り返すために使います。

for 変数 in シーケンス:
    処理1
    処理2
    ....

(例)

# 1から5までの数字を表示する例

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

(実行結果)

1
2
3
4
5

 for 文では、リスト(配列)、文字列、タプル、辞書など反復可能な(iterable)オブジェクトから要素を取得することができます。

break 文

 break 文は、ループ内で特定の条件が満たされた場合に、そのループを即座に終了させるために使用されます。

 break 文は、無限ループから脱出やエラー処理の際に使われることがあります。

(例1:無限ループからの脱出)

while True:  # 常にtrueのため, 無限ループ発生
    user_input = input("Type 'exit' to quit: ")
    if user_input == 'exit':  #ユーザーが"exit"と入力したらbreakが実行され, 無限ループを抜ける
        break

(例2:エラー処理)

#エラーが発生したら, break文によりループ処理をやめ, else ブロックが実行される
for i in range(10):
    try:  #実行しようとする処理
        result = 10 / (i - 5)
    except ZeroDivisionError:  #0で割ろうとした場合に起こるエラー
        print(f"Error dividing by zero for i = {i}.")
        break
    except Exception as e:  #その他の例外
        print(f"An error occurred: {e}")
        break
    else:
        print(f"Result for i = {i}: {result}")

else 文の説明は、後述しています。

continue 文

 continue文は、ループ内で特定の条件が満たされた場合に、それ以降のループ内のコードをスキップし、次の繰り返しに進むために使用されます。

for i in range(1, 11):
    if i % 2 == 0:  # i が2で割り切れるならばcontinueが処理され,以下のループ内のコードをスキップし、次のループへ
        continue
    print(i)

(実行結果)

1
3
5
7
9

else 文

 Python では、else 文を使って、ループが正常に終了した場合に実行される処理を記述することができます。

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    if fruit == "orange":
        print("I found an orange!")
        break
else:
    print("No oranges found.")