ワンライナー
$ python -c "print '\n'.join([''.join(['%3d'%(i*j) for i in range(1,10)]) for j in range(1,10)])"
(自分のための) 解説
$ python -c ""
はコマンドラインから直接pythonのプログラムを実行するためのお作法
[]
のところはPythonでいう内包表記。ループを簡単に書けるっぽい。 print[i*j for i in range(1,10) for j in range(1,10)]
を実行すると、
[1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, ...中略...36, 45, 54, 63, 72, 81]
と九九の計算結果が丸々表示される。
コレを適宜改行させるために、まず join
関数で計算結果を一段毎に一つの文字列にしてしまう
print [''.join(['%3d'%(i*j) for i in range(1,10)]) for j in range(1,10)]
[' 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']
あとはこれを一段ごとに改行するためにさらにjoin
関数で挟むと出来上がり。
print '\n'.join([''.join(['%3d'%(i*j) for i in range(1,10)]) for j in range(1,10)])
出力結果
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