ネストされたループ

複数のifelse文をネストして条件分岐を作成できるのと同様に、forwhileループをネストすることもできます。
時間、分、秒を繰り返し処理することで、1日の時間を反復処理できます。
for h in range(24):
    for m in range(60):
        for s in range(60):
            print(f'Time: {h}:{m}:{s}')
このプログラムの出力は、右に示すように1日のすべての可能なタイムスタンプになります。
まずh = 0からforループが始まり、m = 0を使って、0から59までのすべての秒を反復処理し、時間を表示します。
次に、プログラムはm = 1を設定し、再びすべての秒を繰り返します。m = 2を設定し、このプロセスをm = 59に達するまで繰り返します。この時点で2番目のループが終了し、h1になります。その後、h = 1での分と秒の繰り返し処理が再び行われます。hはその後23と増加し、h23m59s59に達するまでこのサイクルが続きます。これですべての3つのループが終了します。
Time: 0:0:0
Time: 0:0:1
Time: 0:0:2
Time: 0:0:3
Time: 0:0:4
Time: 0:0:5
Time: 0:0:6
Time: 0:0:7
...
Time: 0:9:20
Time: 0:9:21
Time: 0:9:22
Time: 0:9:23
Time: 0:9:24
...
Time: 23:59:54
Time: 23:59:55
Time: 23:59:56
Time: 23:59:57
Time: 23:59:58
Time: 23:59:59
上記のコードが実行された場合の動作を示すインタラクティブなビジュアルプレイグラウンドです。「次へ」をクリックして、Pythonがプログラムを1行ずつどのように実行するかを確認しましょう。 簡単のため、分と秒が60ではなく10であると仮定します。
ネストされたループを使って、さらに細かいオブジェクトを画面に表示することもできます。
for i in range(10):
    for j in range(i + 1):
        if j % 2 == 0:
            print('*', end='')
        else:
            print('#', end='')
    print()
*
*#
*#*
*#*#
*#*#*
*#*#*#
*#*#*#*
*#*#*#*#
*#*#*#*#*
*#*#*#*#*#
各行iについて、内側のループj in range(i + 1)で出力します。シンボルは位置に基づいて決定されます。

チャレンジ

2Dゲームに触発されて、いくつかの形を印刷して実験してみましょう。高さn、幅nの三角形を印刷したいのですが、各位置について、その行と列の合計が偶数ならシンボルはe、奇数ならoを印刷します。
行と列は1から数え始めることに注意してください。
入力
出力
10
e oe eoe oeoe eoeoe oeoeoe eoeoeoe oeoeoeoe eoeoeoeoe oeoeoeoeoe
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue