ネストしたループ
CoddyのPythonジャーニー「Fundamentals」セクションの一部 — レッスン 41/77。
二重ループ(ネストされたループ)は、別のループの中にあるループのことです。内側のループは、外側のループの各反復に対して、そのすべての反復を完了します。
まずは、概念を理解するためにシンプルな二重ループから始めましょう:
# 外側のループ
for i in range(3):
print(f"Outer loop iteration: {i}")
# 内側のループ
for j in range(2):
print(f" Inner loop iteration: {j}")このコードを実行すると、次のように表示されます:
Outer loop iteration: 0
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 1
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 2
Inner loop iteration: 0
Inner loop iteration: 1外側のループの各反復において、内側のループはそのすべての反復を完了することに注目してください。
それでは、実践的な例として、簡単なパターンを表示してみましょう:
# 2x3の星の長方形を表示する
for row in range(2): # 2行
line = ""
for col in range(3): # 3列
line += "*"
print(line)
# 出力:
# ***
# ***外側のループは印刷する行数を制御し、内側のループは星を追加することで各行を構築します。
チャレンジ
簡単入れ子になったループ(二重ループ)を使用して、星(*)で長方形のパターンを出力するコードを記述してください。
プログラムの要件:
- 2つの整数
rowsとcolsを読み取ります。 - 入れ子になったループ構造を使用してパターンを出力します。
- 外側のループで各行を繰り返します。
- 内側のループで、正しい数の星を含む各行を構築します。
- 完成した各行を出力します。
例:入力が 3 行 4 列の場合、出力は以下のようになります:
****
****
****チートシート
入れ子になったループ(ネストされたループ)は、他のループの中にあるループのことです:
for x in range(2):
for y in range(2):
print(x, y)
# 出力:
# 0 0
# 0 1
# 1 0
# 1 1内側のループは、外側のループの各イテレーション(反復)ごとにすべてのイテレーションを完了します。これは、時計の分針が1時間ごとに1周するのと似ています。
自分で試してみよう
# 行と列の入力を取得する
rows = int(input())
cols = int(input())
# ここにネストされたループを記述します
# 行のための外側のループ
# 列のための内側のループこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。