【Python】while文の使い方

目次から探す

while文の使い方

Pythonのwhile文は、指定した条件が真である限り、繰り返し処理を行うための制御構造です。

while文を使うことで、特定の条件が満たされるまで同じ処理を繰り返すことができます。

条件式の書き方

while文では、条件式を指定してループの継続を制御します。

条件式は真偽値を返す式であり、真である限りループが続きます。

条件式はwhileキーワードの後に書かれ、コロン(:)で終わります。

例えば、以下のような形式です。

while 条件式:
    # 条件式が真の場合に実行する処理

ループの中での処理

while文の中で実行される処理は、インデント(字下げ)によってブロックとして表現されます。

ループの中で実行される処理は、条件式が真である限り繰り返されます。

例えば、以下のような形式です。

while 条件式:
    # 条件式が真の場合に実行する処理1
    # 条件式が真の場合に実行する処理2
    # ...

ループの終了条件

while文のループを終了させるためには、条件式が偽になるような状況を作る必要があります。

ループの終了条件は、ループ内での処理や変数の値によって制御することが一般的です。

例えば、以下のような形式です。

while 条件式:
    # 条件式が真の場合に実行する処理
    if 終了条件:
        break

条件式は真偽値を返す式であり、真である限りループが続きます。

ループの中で実行される処理は、インデント(字下げ)によってブロックとして表現されます。

ループの終了条件は、ループ内での処理や変数の値によって制御することが一般的です。

while文の応用例

数字のカウントアップ

while文は、特定の条件が満たされている間、繰り返し処理を行うための制御構造です。

数字のカウントアップは、その代表的な応用例の一つです。

例えば、1から10までの数字を順番に表示するプログラムを作成する場合、以下のようなコードを書くことができます。

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

このプログラムでは、countという変数を初期値1で初期化し、while文の条件式であるcount <= 10が満たされている間、ループ内の処理が実行されます。

ループ内では、countの値を表示し、countに1を加えることで次の数字に進みます。

このプログラムを実行すると、1から10までの数字が順番に表示されます。

ユーザー入力の受け付け

while文は、ユーザーからの入力を受け付ける際にもよく使用されます。

例えば、ユーザーに数字を入力してもらい、その数字が特定の条件を満たすまで繰り返し入力を求めるプログラムを作成する場合、以下のようなコードを書くことができます。

number = 0
while number < 10:
    number = int(input("10未満の数字を入力してください: "))

このプログラムでは、numberという変数を初期値0で初期化し、while文の条件式であるnumber < 10が満たされている間、ループ内の処理が実行されます。

ループ内では、ユーザーに対して10未満の数字を入力してくださいというメッセージを表示し、input()関数を使ってユーザーからの入力を受け取ります。

その入力された値をint()関数で整数に変換し、numberに代入します。

もし入力された値が10未満であれば、再度入力を求めるためにループが繰り返されます。

入力された値が10以上の場合、ループを終了します。

ファイルの読み込み

while文は、ファイルの読み込みなどの処理にも利用することができます。

例えば、テキストファイルから行ごとにデータを読み込み、処理を行うプログラムを作成する場合、以下のようなコードを書くことができます。

file = open("data.txt", "r")
line = file.readline()
while line:
    # 行ごとの処理を行う
    print(line)
    line = file.readline()
file.close()

このプログラムでは、open()関数を使ってファイルを読み込みモードで開き、readline()関数を使ってファイルから1行ずつデータを読み込みます。

while文の条件式であるlineは、読み込んだ行が空文字列でない限り、つまりファイルの終端に達していない限り、ループ内の処理が実行されます。

ループ内では、読み込んだ行のデータを表示したり、他の処理を行ったりすることができます。

そして、readline()関数を再度呼び出して次の行を読み込みます。

最後に、ファイルを閉じるためにclose()メソッドを呼び出します。

while文の注意点

無限ループに注意

while文を使用する際には、無限ループに注意が必要です。

無限ループとは、ループの終了条件が満たされずに永遠に繰り返される状態のことを指します。

無限ループになってしまうと、プログラムが停止せずに処理が続行されるため、予期しない結果やエラーが発生する可能性があります。

無限ループを避けるためには、ループの終了条件を適切に設定する必要があります。

終了条件が必ず満たされるようにするか、あるいはループ内で終了条件が満たされるような処理を行うことが重要です。

例えば、カウンタ変数を使用して特定の回数だけループを繰り返すようにするなど、終了条件を明確に設定しましょう。

以下は無限ループになってしまう例です。

while True:
    print("Hello, world!")

上記のコードでは、条件式が常にTrueとなっているため、ループが永遠に続きます。

このような場合、プログラムを強制的に停止する必要があります。

ループの制御

while文では、ループ内で特定の条件に基づいて処理をスキップしたり、ループを終了したりすることができます。

これをループの制御と呼びます。

continue文

continue文を使用すると、その時点でのループの実行をスキップし、次の繰り返しに進むことができます。

continue文を使用することで、特定の条件が満たされた場合に処理をスキップすることができます。

以下は、1から10までの数字を順に表示するプログラムですが、3の倍数の場合は表示をスキップしています。

num = 1
while num <= 10:
    if num % 3 == 0:
        num += 1
        continue
    print(num)
    num += 1

上記のコードでは、3の倍数の場合にはcontinue文が実行され、その後のprint文がスキップされます。

break文

break文を使用すると、ループを強制的に終了することができます。

break文が実行されると、ループから抜け出し、次の処理に進みます。

以下は、1から10までの数字を順に表示するプログラムですが、5の倍数の場合にループを終了しています。

num = 1
while num <= 10:
    if num % 5 == 0:
        break
    print(num)
    num += 1

上記のコードでは、5の倍数の場合にはbreak文が実行され、ループが終了します。

ループの制御をうまく活用することで、特定の条件に基づいた処理のスキップやループの終了を行うことができます。

適切に制御を行い、必要な処理を実現しましょう。

無限ループになってしまった場合は、プログラムを強制的に停止する方法として、一時的にCtrl + Cを押すことができます。

ただし、この方法はプログラムが実行中の場合にのみ有効です。

while文と他の制御構造の比較

for文との違い

Pythonのfor文while文は、どちらも繰り返し処理を行うための制御構造ですが、使い方や動作にはいくつかの違いがあります。

まず、for文はあらかじめ指定した回数だけ繰り返し処理を行います。

一方、while文は条件式がTrueの間、繰り返し処理を行います。

つまり、繰り返し回数が明確である場合はfor文を、条件によって繰り返し回数が変わる場合はwhile文を使うことが一般的です。

また、for文はリストや範囲などのイテラブルオブジェクトを使って繰り返し処理を行いますが、while文は条件式がTrueの間、繰り返し処理を行うため、イテラブルオブジェクトを使わずに繰り返し処理を行うこともできます。

if文との組み合わせ

while文if文を組み合わせることで、特定の条件を満たすまで繰り返し処理を行うことができます。

例えば、以下のようなコードを考えてみましょう。

count = 0
while count < 5:
    if count % 2 == 0:
        print(count, "は偶数です")
    else:
        print(count, "は奇数です")
    count += 1

このコードでは、変数countが5未満の間、繰り返し処理を行います。

そして、if文を使ってcountが偶数か奇数かを判定し、結果を出力します。

countが偶数の場合はは偶数ですと、奇数の場合はは奇数ですというメッセージが表示されます。

このように、while文if文を組み合わせることで、特定の条件を満たすまで繰り返し処理を行う柔軟なプログラムを作ることができます。

目次から探す