九九の表を出力するプログラムを作成しなさい。 インデント(行頭の空白)に十分注意して作成すること!
i = 1 #かけられる数 while i < 10: j = 1 #かける数 while j < 10: print(i * j, end=" ") j = j + 1 print() #改行 i = i + 1
H:\prg1\10> python 99.py↵
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
九九を計算すると1桁または2桁の数がでる。上のプログラムのように計算結果をそのまま出力させると, 1桁と2桁の数が交った表になり,列(かける数)をそろえて出力することができない。
下の出力結果のように,i * j(かけられる数×かける数)を右寄せ2文字で出力させるように上のプログラムを改良してみなさい。
H:\prg1\10> python 99.py↵
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
i * jが10未満かどうかの条件判断を行い, 真の場合にスペース1文字を出力させる文print(' ', end="")を書き加えればよい。 あるいは,%演算子やformatメソッドを用いる方法もある。 この授業では書式付文字列については詳しく取り上げないので, この問題(書式付文字列の詳細)は,興味のある履修者への宿題とする。
99.pyの5行目のprint文を次のいずれかの文に書き換えればよい。
for i in range(1, 10): for j in range(1, 10): print(i * j, end=" ") print()