zoukankan      html  css  js  c++  java
  • 打印九九乘法表,左下角、右上角、左上角、右下角,使用列表推导式

    左下角

    # 这种情况最简单,列数<=行数,从左边打印即可
    for i in range(1, 10):
        for j in range(1, 10):
            if j <= i:
                print('{}x{}={}'.format(j, i, i*j), end='	')
        print()
    
    for i in range(1, 10):
        for j in range(1, i+1):
            print('{}x{}={}'.format(j, i, i*j), end='	')
        print()
    
    # 使用列表推导式
    print('
    '.join(['	'.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='	')
        for n in range(i, 10):
            print('{}x{}={}'.format(i, n, i*n), end='	')
        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='	')
        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='	')
        for n in range(1, i+1):
            print('{}x{}={}'.format(i, n, i*n), end='	')
        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
    
  • 相关阅读:
    洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题解
    洛谷 P1957 口算练习题 题解
    洛谷 P2036 Perket 题解
    洛谷 P2369 EXCEEDED WARNING A 题解
    洛谷 P1184高手之在一起 题解
    洛谷 P1897电梯里的爱情 题解
    Python做的眼睛护士
    Python-Tkinter的Entry详解
    Python的TkinterButton做为父窗口
    Python用Tkinter的Frame实现眼睛护士的倒计时黑色屏幕
  • 原文地址:https://www.cnblogs.com/keithtt/p/9419866.html
Copyright © 2011-2022 走看看