打印99乘法表

本鸟的代码:
for i in range(1,10):
print()
for j in range(1,10):
print('%d*%d=%2d ' %(i,j,i*j),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*1= 2  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*1= 3  3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

显然,执行结果超出了预期,数据出现的重复。

这是什么原因呢??

i j所在的循环体范围都是【1-9】,所以会出现3* 4 和4*3两组相同的数据

 

别人家的代码:
for i in range(1,10):
print()
for j in range(1,i+1):
print('%d*%d=%2d ' %(i,j,i*j),end='')

别人家代码的执行结果:


1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
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 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

漂亮!这才是预期

那么人家是怎么做的

1、在i循环体下,j的范围时可变的。j不会超过i

 

posted on 2017-12-18 16:26  喵喵王  阅读(308)  评论(0)    收藏  举报