for i in range(1,10):
for j in range(1,10):
print('{}*{}={}'.format(j,i,i*j),end=' ')
print()
只需要对角线以下的,所以修改代码如下
for i in range(1,10):
for j in range(1,10):
if j <= i:
print('{}*{}={}'.format(j,i,i*j),end=' ')
print()
继续分析
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()
但是发现还有不对齐的地方
第1种解决方法: 用\t来解决
第2种方法:
分析可以得到,只要j不等于1,那么起得到的结果宽度都为1
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()
最终版本
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 放入了里面的{},后面你的这个条件相当于是对里面的结果的值进行处理