用f-string串比较好理解,其中{i*j:>2} :>2表示右对齐,数字表示留几个字符空间。 :<3则表示左对齐;居中对齐则用 :^3
双重循环的循环变量对应的是被乘数和乘数,有的题数字对换,乘法表排列有的要求写成正三角,需要相应修改
for i in range(1,10):
for j in range(1,10-i+1):
print(f'{i}*{j}={i*j:>2}',end=' ')
print()
'''--result:
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*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16
3*1= 3 3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21
4*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24
7*1= 7 7*2=14 7*3=21
8*1= 8 8*2=16
9*1= 9
'''
[root@localhost python]# cat hello.py
for i in range(1,10):
print(' '*7*(i-1),end='')
for j in range(i,10):
print("{}*{}={:<3}".format(i,j,i*j),end='')
print()
参考我的博文
原文链接:https://blog.csdn.net/qq_15604349/article/details/124256002
for i in range(1, 10): #9行
for j in range(1, 10 - i +1 ): #每行多少列,随i的值动态计算出来
print(f'{i}*{j}={i*j:>2}', end = ' ')#每行打印的值,end参数用来控制每个值的分隔
print()#打印了一行,换行