|
1鱼币
>>> i = 1
>>> while i <= 9:
>>> j = 9
>>> while j >= i:
>>> print(j, "*", i, "=", j * i, end=' ')
>>> j -= 1
>>> print()
>>> i += 1
问一下大家,这个倒数第二行代码的print()有什么用呢?
为什么不能是这样子?(为什么会有重复的呢?)
i = 1
while i <= 9:
j = 9
while i <= j:
print(j, "*", i, "=", j * i, end=' ')
j -= 1
print(j,"*",i,"=",j*i,sep="" )
i += 1
print()的作用是 换行。
相当于传入了一个空的字符串print("",end="\n"),那个end参数默认为换行符"\n",
所以每次在打印一个空字符串(什么都不打印)的同时附带一个换行符,把它换行了
所以有换行的作用。
至于为什么不能用你的这段代码,
首先看一下有两处不同的地方,
① i <= j。。没什么好说的,其实就是原代码j >= i,这俩一样的
② print(j,"*",i,"=",j*i,sep="" )
这个的话,首先其实仍然起到了换行的作用,
end仍然是换行符"\n"没有被修改,所以每次执行都会换行
但是运行之后却会发现会多出来一坨东西!
看运行结果: 9 * 1 = 9 8 * 1 = 8 7 * 1 = 7 6 * 1 = 6 5 * 1 = 5 4 * 1 = 4 3 * 1 = 3 2 * 1 = 2 1 * 1 = 1 0*1=0
9 * 2 = 18 8 * 2 = 16 7 * 2 = 14 6 * 2 = 12 5 * 2 = 10 4 * 2 = 8 3 * 2 = 6 2 * 2 = 4 1*2=2
9 * 3 = 27 8 * 3 = 24 7 * 3 = 21 6 * 3 = 18 5 * 3 = 15 4 * 3 = 12 3 * 3 = 9 2*3=6
9 * 4 = 36 8 * 4 = 32 7 * 4 = 28 6 * 4 = 24 5 * 4 = 20 4 * 4 = 16 3*4=12
9 * 5 = 45 8 * 5 = 40 7 * 5 = 35 6 * 5 = 30 5 * 5 = 25 4*5=20
9 * 6 = 54 8 * 6 = 48 7 * 6 = 42 6 * 6 = 36 5*6=30
9 * 7 = 63 8 * 7 = 56 7 * 7 = 49 6*7=42
9 * 8 = 72 8 * 8 = 64 7*8=56
9 * 9 = 81 8*9=72
可见每行最后明显多出来了一个与其他正常结果不同的东西
其中有空格的“9 * 8 = 72”“8 * 8 = 64”应该是print(j, "*", i, "=", j * i, end=' ')打印的,
没有空格的 “7*8=56”就是print(j,"*",i,"=",j*i,sep="" )打印的了。
那么为什么呢?
原本两个都有end="\n",已经起到应有的作用了,
但是改后的代码要 多打印什么什么j*i,其实是多余的,
删掉就完美运行了
另外对于print的参数end不理解的话可以参考甲鱼的讲解 戳这里
如果问题已经得到解答,请设置最佳答案~~
|
最佳答案
查看完整内容
print()的作用是换行。
相当于传入了一个空的字符串print("",end="\n"),那个end参数默认为换行符"\n",
所以每次在打印一个空字符串(什么都不打印)的同时附带一个换行符,把它换行了
所以有换行的作用。
至于为什么不能用你的这段代码,
首先看一下有两处不同的地方,
①i = i,这俩一样的
②print(j,"*",i,"=",j*i,sep="" )
这个的话,首先其实仍然起到了换行的作用,
end仍然是换行符"\n"没有被修改,所以每次执行 ...
|