<p>试试这个:</p>
<pre><code>header = '\t{}'.format('\t'.join(map(str, range(1, 10))))
rows = []
for i in range(1, 10):
row = '\t'.join(map(str, (i*q for q in range(1, 10))))
rows.append('{}\t{}'.format(i, row))
print(header+'\n' + '\n'.join(rows))
</code></pre>
<p>它会给你:</p>
<pre><code>>>> print(header+'\n'+'\n'.join(rows))
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
</code></pre>
<hr/>
<p>@Selcuk做了一些很好的观察,因此这里有一个嵌套for循环的版本,并且正确对齐:</p>
<pre><code>header = []
for i in range(1, 10):
header.append('{0:>2}'.format(i))
rows = []
for i in range(1, 10):
row = []
for q in range(1, 10):
result = '{0:>2}\t'.format(i*q)
row.append(result)
rows.append(row)
print('\t{0:>2}'.format('\t'.join(header)))
for idx, row in enumerate(rows):
print('{0:>2}\t{1}'.format(idx+1, ''.join(row)))
</code></pre>