Python入門者必見!whileループを使った5つのパワフルな方法

Python初心者がwhileループを使ったプログラミングを学ぶイラストPython
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

あなたがPythonを始めたばかりで、whileループについて理解したいと思っているなら、これ以上探す必要はありません。

この記事を読み終えると、あなたはwhileループの基本的な使い方から、エラー処理やデータ処理に至るまで、Pythonのwhileループに関する全てを理解し、実際のコーディングに活用することができるようになります。

●Pythonとは

Pythonは、非常に直感的で読みやすいコードが特徴のプログラミング言語です。

そのため、初心者でも学びやすいと評価されています。

また、Web開発からデータ分析、AIの開発まで幅広い分野で利用されており、その用途の広さも魅力の一つと言えるでしょう。

●whileループの基本

○whileループの概念

whileループは、指定した条件が真(True)である間、特定の処理を繰り返し行う制御構造です。

条件が偽(False)になると、ループは終了します。

○whileループの使い方

whileループの基本的な書き方は次の通りです。

while 条件式:
    実行する処理

“条件式”には、TrueまたはFalseを返すような表現を書きます。

そして”実行する処理”には、ループの中で繰り返し行いたい操作を書きます。

●whileループの詳細なサンプルコード

○サンプルコード1:基本的なwhileループ

下記のコードは、1から5までの数字を順に表示する単純なwhileループです。

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

このコードでは、iの初期値を1に設定し、iが5以下である限り(すなわち、i <= 5がTrueである間)iを表示し、iの値に1を加えています。

iが6になった瞬間、i <= 5はFalseとなり、ループは終了します。

実行結果:

1
2
3
4
5

○サンプルコード2:whileループと条件分岐

次に、whileループとif文(条件分岐)を組み合わせた例を見てみましょう。

このコードでは、1から10までの数字のうち、偶数だけを表示します。

i = 1
while i <= 10:
    if i % 2 == 0:
        print(i)
    i += 1

このコードでは、iが10以下である限り、iが偶数かどうか(すなわち、i % 2 == 0がTrueかどうか)をチェックし、偶数ならばその値を表示しています。

実行結果:

2
4
6
8
10

以上のように、whileループを使って、必要な操作を繰り返し行うことができます。

さらに、if文などの他の制御構造と組み合わせることで、より複雑な処理を行うことも可能になります。

○サンプルコード3:無限ループとその中断

次の例は、無限ループを作成し、特定の条件が満たされたときにループを中断(break)する方法です。

無限ループは通常、意図的に使用するもので、ある特定の条件が満たされるまでループを継続します。

i = 1
while True:
    print(i)
    if i == 5:
        break
    i += 1

このコードでは、ループ条件にTrueを指定して無限ループを作成しています。

ループ内で、iの値が5になったときにbreakを使用してループを終了します。

このコードの実行結果は1から5までの数字が表示され、5を表示した後、ループは終了します。

実行結果:

1
2
3
4
5

○サンプルコード4:リストとwhileループ

次に、リストとwhileループを組み合わせて要素を一つずつ取り出すコードを見てみましょう。

このような操作は、リストから要素を一つずつ処理する場合などによく使用されます。

my_list = ['apple', 'banana', 'cherry']
while my_list:
    print(my_list.pop(0))

このコードでは、my_listにある果物の名前を一つずつ表示しています。

my_list.pop(0)により、リストの先頭の要素を取り出し、その要素を削除します。

これにより、リストが空になるまでループが続きます。

実行結果:

apple
banana
cherry

○サンプルコード5:エラー処理とwhileループ

最後に、whileループとエラー処理を組み合わせた例を見てみましょう。

これはユーザーからの入力を受け付けるなど、エラーが発生しうる状況で非常に役立ちます。

while True:
    try:
        x = int(input('Please enter a number: '))
        break
    except ValueError:
        print('That was no valid number. Try again...')

このコードでは、ユーザーからの入力を整数に変換しようとします。

もし変換がうまくいかない(つまり、ユーザーが数値以外の文字列を入力する)場合は、エラーメッセージを表示し、再度入力を求めます。

入力が正常に整数に変換できた場合は、breakによりループが終了します。

●whileループの応用例

さて、whileループは基本的なプログラミング構造ですが、その応用例は多岐にわたります。

一部の具体的な応用例を見ていきましょう。

○カウンターの作成

最初の例として、カウンターの作成を見てみましょう。

下記のコードは、一定の間隔でカウントを増やすシンプルなカウンターです。

import time

counter = 0
while counter < 10:
    print(counter)
    time.sleep(1)  # Sleep for 1 second
    counter += 1

このコードでは、time.sleep(1)を使って1秒間のスリープ(待機)を行い、その間隔でcounterを1ずつ増やしています。

この結果、0から9までの数値が1秒間隔で表示されます。

実行結果:

0
1
2
3
4
5
6
7
8
9

○ユーザー入力の検証

次に、ユーザーからの入力を検証するためのループを見てみましょう。

下記のコードは、ユーザーからの入力が特定の条件を満たすまで入力を求め続けます。

while True:
    password = input('Enter a password (at least 8 characters): ')
    if len(password) >= 8:
        break
    print('Password is too short. Try again.')

このコードでは、パスワードが8文字以上であることを求めています。

入力されたパスワードが8文字未満の場合、エラーメッセージが表示され、再度入力が求められます。

○データ処理

最後に、データ処理のためのwhileループの例を見てみましょう。

下記のコードは、リスト内の全ての要素に何らかの操作(この例では、値の2倍)を実行します。

data = [1, 2, 3, 4, 5]
index = 0
while index < len(data):
    data[index] = data[index] * 2
    index += 1
print(data)

このコードでは、リストdataの各要素を2倍にし、その結果を表示します。

このコードの実行結果は、元のリストの各要素が2倍になった新しいリストが表示されます。

実行結果:

[2, 4, 6, 8, 10]

これらの例からもわかるように、whileループは様々な状況で役立つ強力なツールです。

しかし、この力を活用するためには、それがどのように機能するのかを理解し、それを適切に制御する必要があります。

それがなければ、ループは予期しない挙動を示す可能性があります。

次のセクションでは、そのような挙動を避けるための注意点と対処法について詳しく説明します。

●注意点と対処法

whileループを使いこなすためには、次の注意点とその対処法を理解することが重要です。

○無限ループ

whileループは条件が真である限り、ループを続けます。

つまり、条件が偽になるように設定されていない場合、ループは永遠に続く無限ループとなります。

# 無限ループの例
while True:
    print('This is an infinite loop!')

このコードは、’This is an infinite loop!’というメッセージを無限に出力します。

これを避けるためには、ループ内部で条件が偽になる何らかのメカニズム(例えば、カウンターの増加)を設けることが重要です。

○早期終了の実現

特定の条件下でループを早期に終了させることもよくあります。

これにはbreakステートメントを用います。

counter = 0
while True:
    print(counter)
    counter += 1
    if counter > 5:
        break

このコードでは、counterが5を超えるとループが終了します。

なお、このコードの実行結果は0から5までの数値が表示されることとなります。

実行結果:

0
1
2
3
4
5

以上のように、whileループは強力なツールですが、それを適切に制御するためのテクニックが必要です。

●カスタマイズ方法

whileループの動作を更にカスタマイズする方法を紹介していきます。

○ループ中の特定のイテレーションをスキップする

ループを繰り返す中で、特定の条件下ではそのイテレーションをスキップしたい場合があります。

このような場合にはcontinueステートメントを用いると便利です。

counter = 0
while counter < 10:
    counter += 1
    if counter % 2 == 0:  # counterが偶数であれば
        continue  # このイテレーションをスキップ
    print(counter)

このコードでは、counterが偶数の時にcontinueステートメントが実行され、print文がスキップされます。

そのため、出力は奇数のみとなります。

実行結果:

1
3
5
7
9

このように、continueステートメントは特定の条件下でループの一部をスキップするための強力なツールとなります。

まとめ

Pythonのwhileループを活用することで、プログラム内の繰り返しの処理を効率的に実行することが可能となります。

この記事では、初心者にも理解しやすいように、whileループの基本的な構文からカスタマイズ方法まで詳しく解説しました。

これらの基本的な要素を理解することで、Pythonを使ったプログラミングがさらに楽しくなり、あなたのコーディングスキルも向上することでしょう。

最後に、whileループは非常に便利なツールである一方で、適切な終了条件を設定しないと無限ループに陥る危険性もあるため、使用する際は注意が必要です。

特に初心者の方は、まずは簡単なコードから始めて、徐々に複雑なコードに挑戦していくことをお勧めします。

これからもPython学習に頑張ってください。

さらなる知識や技術を身につけ、新しいプログラムを作る楽しみを感じていただければ幸いです。