for i in range(0, 5):
for j in range(i + 1):
print("*")
print()
for i in range(0, 5):
for j in range(i + 1):
print("*",end='')
print()
分析
两个代码的区别在于是否把每行的内容甩下去;每行的内容其实都是紧挨着的,可以把end=''看作无缝紧挨着。
- 如果不带
end=''
,那么每行打印出来的内容会默认在下方紧挨着打印出来,每行都用print()
这个函数来一次空格,以进行下一次甩下去的紧挨着的*的排列; - 如果带
end=''
,则默认将每行的*都在右侧紧密排列再一起,然后使用print()
函数打印一行空格。
结果
疑问
print()
这个函数默认是用来换行的,从第一个代码可以看出来当甩出紧凑的每一行之后都会有换行的出现,说明print()
起到了作用;从第二个代码可以看出来每行因为有end=''
,所以都每行的内容紧密地排布在了,为什么每行输出完了之后,直接略过print()
,直接开始紧密排列下一行了?还得再加一个print()
,才能实现紧密排列的每行之间都有换行,那么为什么有两个print()
却仅仅实现了一次换行,难道上一个print()
归于每行最后紧密排列的空白了吗?我着实想不通。