打印九九乘法表,左下角、右上角、左上角、右下角,使用列表推导式
左下角
# 这种情况最简单,列数<=行数,从左边打印即可
for i in range(1, 10):
for j in range(1, 10):
if j <= i:
print('{}x{}={}'.format(j, i, i*j), end='\t')
print()
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}'.format(j, i, i*j), end='\t')
print()
# 使用列表推导式
print('\n'.join(['\t'.join(['{}x{}={}'.format(j, i, i*j) for j in range(1, i+1)]) for i in range(1, 10)]))
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
右上角
# 把每一行都当做一整个字符串,从左边打印,然后格式化到右边对齐
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={:<{}}'.format(j, i, i*j, 2 if j<2 else 3), end='')
print()
# 先打印空白部分,再打印字符部分
for i in range(1,10):
for m in range(1, i):
print(end='\t')
for n in range(i, 10):
print('{}x{}={}'.format(i, n, i*n), end='\t')
print()
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x6=36 6x7=42 6x8=48 6x9=54
7x7=49 7x8=56 7x9=63
8x8=64 8x9=72
9x9=81
左上角
for i in range(1, 10):
for j in range(i, 10):
print('{}x{}={}'.format(i, j, i*j), end='\t')
print()
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x6=36 6x7=42 6x8=48 6x9=54
7x7=49 7x8=56 7x9=63
8x8=64 8x9=72
9x9=81
右下角
# 与第二种类似
for i in range(1, 10):
for m in range(1, 10-i):
print(end='\t')
for n in range(1, i+1):
print('{}x{}={}'.format(i, n, i*n), end='\t')
print()
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81