見出し画像

Python3 for文の応用

for文を2回使うと以下のように九九の表を作れます。

for i in range(1, 10):
    for j in range(1, 10):        # i の段を横1列に出力する
        val = i * j
        if val < 10:              # 1桁の場合は空白入れて調整
            print(" ", end="")
        print(" ", val, end="")
    print()
 
   1   2   3   4   5   6   7   8   9
   2   4   6   8  10  12  14  16  18
   3   6   9  12  15  18  21  24  27
   4   8  12  16  20  24  28  32  36
   5  10  15  20  25  30  35  40  45
   6  12  18  24  30  36  42  48  54
   7  14  21  28  35  42  49  56  63
   8  16  24  32  40  48  56  64  72
   9  18  27  36  45  54  63  72  81

たてH cm よこ W cm の長方形を描くプログラムを作成します。1 cm × 1cm の長方形を '#'で表します。H, W がともに 0 のとき、入力の終わりとします。

while True:
    H,W=map(int,input().split())
    if H==0 and W==0:
        break
    for i in range(0,H):
        for j in range(0,W):
            print('#',end='')
        print()
    print()
 
5 6
######
######
######
######
######
 
0 0
>>>

長方形の中身を「.」で埋める場合は以下のようなコードになります。

while True:
    H,W=map(int,input().split())
    if H==0 and W==0:
        break
    for i in range(0,H):
        for j in range(0,W):
            if i==0 or i==H-1 or j==0 or j==W-1:
                print("#",end="")
            else:
                print(".",end="")
        print()
    print()
 

5 6
######
#....#
#....#
#....#
######

3 3
###
#.#
###

0 0
>>>

チェス盤みたいに交互に並べたい場合は以下のようになる。

while True:
    H,W=map(int,input().split())
    if H==0 and W==0:
        break
    for i in range(0,H):
        for j in range(0,W):
            if (i+j)%2==0:
                print("#",end="")
            else:
                print(".",end="")
        print()
    print()
 
5 6
#.#.#.
.#.#.#
#.#.#.
.#.#.#
#.#.#.

3 3
#.#
.#.
#.#

1 1
#

0 0
>>>


この記事が気に入ったらサポートをしてみませんか?