Pythonのwhile文を詳しく解説! Part – 1 はこちら
6. ネストされたwhileループ
6-1. whileループのネスト(入れ子)
「ネスト」とは、一つの構造の中に同じ種類の構造を入れることを指します。プログラミングにおいては、一つのループの中に別のループを入れることがよくあります。これを「ループのネスト」と言います。
基本的な構文
whileループをネストする場合、基本的な書き方は以下のようになります。
while 条件1:
while 条件2:
# ここで何か処理をする
このコードでは、「条件1」が真(True)である限り、外側のwhile
ループが動きます。そしてその中で「条件2」が真である限り、内側のwhile
ループが動きます。
6-2. わかりやすい例
この例では、外側のループがi
を1から3まで変化させ、内側のループがj
を1から3まで変化させます。その結果、i
とj
の全ての組み合わせでprint
関数が実行されます。
i = 1
while i <= 3:
j = 1
while j <= 3:
print(f"iは{i}、jは{j}")
j += 1
i += 1
実行結果は以下のようになります。
iは1、jは1
iは1、jは2
iは1、jは3
iは2、jは1
iは2、jは2
iは2、jは3
iは3、jは1
iは3、jは2
iは3、jは3
このようなネストされたwhileループは、複数の条件に基づいて繰り返し処理を行いたい場合に非常に便利です。
もちろんです、表示結果とf"{month}月{day}日"
の説明も含めて、初心者向けに詳しく説明します。
6-3. ネストされたループの例(お金を貯めるプログラム)
コード
month = 1
while month <= 12:
day = 1
while day <= 30:
print(f"{month}月{day}日: 100円貯金")
day += 1
print(f"{month}月終わり: 3000円貯金")
month += 1
詳細な説明
このプログラムは、1年間でお金を貯める計画を作ります。
- 外側のループは「月」を制御します。1月から12月まで繰り返します。
- 内側のループは「日」を制御します。各月の1日から30日まで繰り返します。
- 毎日100円貯金すると表示されます。
- 1ヶ月が終わると、その月に貯めた合計金額(3000円)が表示されます。
f
は、Pythonのf-string(フォーマット済み文字列リテラル)を使う際に文字列の前に付けます。
f-stringを使うことで、文字列内に変数の値を直接埋め込むことができます。
例えば、f"{month}月{day}日: 100円貯金"
というコードがあります。
f
・これがあると、その後の文字列はf-stringとして扱われます。
{month}
・この部分は、変数month
の値に置き換えられます。
{day}
・この部分は、変数day
の値に置き換えられます。
このように、f
を使うことで、変数の値を簡単に文字列に埋め込むことができます。
表示結果の一部
1月1日: 100円貯金
1月2日: 100円貯金
...
1月30日: 100円貯金
1月終わり: 3000円貯金
2月1日: 100円貯金
...
12月30日: 100円貯金
12月終わり: 3000円貯金
毎日100円ずつ貯金して、1ヶ月で3000円貯めるという計画をシミュレーションしています。
7. まとめ
7-1. whileループの重要性と有用性
whileループはPythonプログラミングにおいて非常に重要な概念です。
その柔軟性と多様性により、さまざまなプログラミングシナリオで有用です。
特に、繰り返し処理が必要な場合や、特定の条件が満たされるまで処理を続ける必要がある場合には、whileループは非常に効果的です。
7-2. whileループを使いこなすためのポイント
- 条件式の設計: ループが無限にならないように、条件式を慎重に設計することが重要です。条件が明確でないと、プログラムは停止せずに永遠に続いてしまう可能性があります。
- breakとcontinueの活用: ループの途中で制御を行いたい場合は、
break
やcontinue
を活用しましょう。break
はループを完全に終了させ、continue
は次のイテレーションにスキップします。 - ネストの理解: ネストされたループを使う場合は、その動作をしっかりと理解しておくことが重要です。ネストされたループは計算量が増えるため、パフォーマンスに影響を与える可能性があります。
- 変数の更新: whileループ内で使用する変数は、ループ内で適切に更新されるように注意が必要です。変数が更新されないと、ループは終了しない可能性があります。
- エラーハンドリング: 何らかの理由でループが停止する可能性がある場合、適切なエラーハンドリングを行うことで、プログラムの安全性を高めることができます。
- コードの可読性: whileループはしばしば複雑になる可能性があります。そのため、コメントや適切なインデントを用いて、コードの可読性を高めることが推奨されます。
以上のポイントを考慮することで、whileループをより効果的に使いこなすことができます。
【全額返金保証】おすすめプログラミングスクール
な、なんと、なんとっ! 就職したら全額返金のウズウズカレッジが熱い!
▲YouTubeで累計390万再生を超える学習動画。学習コンテンツは、YouTubeで高評価率98.2%を誇るLinuC学習動画をさらにパワーアップした内容で提供。 さらにYouTubeでは公開していないカリキュラムを専任講師の指導の元、全て受講することが可能です。 https://www.youtube.com/playlist?list=PLXXalsdlzX-InzSH2uMWkoAdd1rE9p0O-
プログラミング未経験でも就職が可能!
な、なんと、なんと、なんとっ!? 未経験でも正社員で働ける!?
未経験からITエンジニアを目指したい方の特化型就職サポート!
▼ブラック企業を徹底排除!
離職率/労働時間/社会保険の有無/雇用形態などで厳しい基準を設けています。全ての企業に訪問して基準を満たしているかを確認し、弊社から入社された方の定着率は93%以上と非常に高いです!
▲就職サポートのみならずIT学習のサポートも受けられる (※どちらも完全無料) ・UZUZで利用できる無料のYouTube動画はなんと20本(16時間分)!
https://www.youtube.com/playlist?list=PLXXalsdlzX-IuXHRLIrw9G55Hw6oiXQGS
https://www.youtube.com/playlist?list=PLXXalsdlzX-J7AUuw2zSHit5nRUZ3eDdz