实用:Python3实现打印九九乘法表(格式对齐版)

打法一:

for i in range(1,10):
    for j in range(1,10):
        if i <= j:
            if j != 9:
                if j <= 3:
                    print('{0}*{1}={2:<1} '.format(i,j,i*j),end='')
                else:
                    print('{0}*{1}={2:<2} '.format(i,j,i*j),end='')
            else:
                print('{0}*{1}={2:<2} '.format(i,j,i*j))
        else:
            if j <= 3:
                print('{0} {1} {2:<1} '.format(' ',' ',' '),end='')
            else:
                print('{0} {1} {2:<2} '.format(' ',' ',' '),end='')

运行结果:

1*1=1 1*2=2 1*3=3 1*4=4  1*5=5  1*6=6  1*7=7  1*8=8  1*9=9  
      2*2=4 2*3=6 2*4=8  2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
            3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 
                  4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 
                         5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 
                                6*6=36 6*7=42 6*8=48 6*9=54 
                                       7*7=49 7*8=56 7*9=63 
                                              8*8=64 8*9=72 
                                                     9*9=81

打法二:

for i in range(1,10):
    line=''
    for j in range(1,i+1):
        if i*j>9 or j==1:
            line+='{0}*{1}={2} '.format(j,i,i*j)
        else:
            line+='{0}*{1}={2}  '.format(j,i,i*j)
    print(line)

运行结果:

1*1=1 
1*2=2 2*2=4  
1*3=3 2*3=6  3*3=9  
1*4=4 2*4=8  3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

打法三:(列表解析式)

print('\n'.join([ ''.join(['{}*{}={:<3}'.format(y,x,x*y,end='') for y in range(1,x+1)]) for x in range(1,10)]))

运行结果:

1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

打法四:(列表解析式+三目运算符)

[print('{}*{}={:<3}{}'.format(y,x,x*y,'\n' if x==y else ''),end='') for x in range(1,10) for y in range(1,x+1)]

运行结果:

1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

你可能感兴趣的:(python,Python学习记录)