2021年4月15日木曜日

Python で九九の表を作る

for x in range(9):
    for y in range(9):
        print(x*y)

Python では整数は 0 から始まる。だから上の書式では x と y は 0 から 8 まで 9 回転する。
だから九九の表を作るには x*y ではうまくいかない。(x+1)*(y+1) としよう。
また、Python の print 文では、特に指示しなければ、表示した後に改行する。
改行しないようにするには、終わり方の指示として「,end=('')」をつけた形にする。

for x in range(9):
    for y in range(9):
        print((x+1)*(y+1),end=(''))

ただしこれでは全ての値が横に並んでしまう。しかも隙間が全く無い。
そこで、まず積の値を表示する際に1文字分の隙間を開けよう。
また、1の段、2の段、…の終わりに改行させよう。そのための記述が print('') である。
さらに、積の値が1桁のときにも1文字分の隙間を開けよう。

for x in range(9):
    for y in range(9):
        if (x+1)*(y+1)<10:
            print(' ',end=(''))
        print(' ',(x+1)*(y+1),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


0 件のコメント:

コメントを投稿