打印九九乘法表,左下角、右上角、左上角、右下角,使用列表推导式

左下角

# 这种情况最简单,列数<=行数,从左边打印即可
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
posted @ 2018-08-04 20:46  KeithTt  阅读(1275)  评论(0编辑  收藏  举报