1. 99乘法表

发布时间 2023-05-08 10:20:21作者: 村里唯一的运维
for i in range(1,10):
    for j in range(1,10):
        print('{}*{}={}'.format(j,i,i*j),end=' ')
    print()

image.png
只需要对角线以下的,所以修改代码如下

for i in range(1,10):
    for j in range(1,10):
        if j <= i:
            print('{}*{}={}'.format(j,i,i*j),end=' ')
    print()

image.png
继续分析

1<=i<10
1<=j<10
j <=i
所以可以如下
1<=j<=i+1
那么代码就如下了
for i in range(1,10):
    for j in range(1,i+1):
            print('{}*{}={}'.format(j,i,i*j),end=' ')
    print()

但是发现还有不对齐的地方
image.png
第1种解决方法: 用\t来解决
image.png
第2种方法:

分析可以得到,只要j不等于1,那么起得到的结果宽度都为1

image.png

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

image.png

最终版本

 for i in range(1,10):
     for j in range(1,i+1):
         print('{}*{}={:<{}}'.format(j,i,j*i,3 if j!=1 else 2),end='' if i !=j else '\n' )
            
            
            
'{}*{}={:<{}}'.format(j,i,j*i,3 if j!=1 else 2)
                        这一句中相当于是 j*i 放入了里面的{},后面你的这个条件相当于是对里面的结果的值进行处理