嵌套循环打印星形(*)[python]
下面的代码等于预期的输出。我只想问,为什么打印单个星号时需要先打印(),但打印多个星号时不需要打印()嵌套循环打印星形(*)[python],python,nested-loops,Python,Nested Loops,下面的代码等于预期的输出。我只想问,为什么打印单个星号时需要先打印(),但打印多个星号时不需要打印() n = '*' for i in range(1,7): for j in range(1,6): if i == 1 and j < 6: print(n, end = '') elif i == 2 and j == 1: print() print(
n = '*'
for i in range(1,7):
for j in range(1,6):
if i == 1 and j < 6:
print(n, end = '')
elif i == 2 and j == 1:
print()
print(n)
elif i == 3 and j < 5:
print(n, end = '')
elif i == 4 and j == 1:
print()
print(n)
elif i == 5 and j == 1:
print(n)
elif i == 6 and j == 1:
print(n)
n='*'
对于范围(1,7)内的i:
对于范围(1,6)内的j:
如果i==1且j<6:
打印(n,结束=“”)
如果i==2和j==1:
打印()
打印(n)
elif i==3且j<5:
打印(n,结束=“”)
如果i==4和j==1:
打印()
打印(n)
如果i==5和j==1:
打印(n)
如果i==6和j==1:
打印(n)
当您打印单个星号时,只需执行打印(n)
,其中n=“*”
请注意,当使用函数“打印”时,它会自动在末尾插入一个换行符(
\n
),这样每当您再次打印内容时,它就会出现在一个换行符上。但是,这可以通过执行
print(n,end='')
来覆盖。这不会将换行符放在末尾,而是将结尾字符放在末尾。因此,现在,下一次打印不会转到下一行,而是继续在同一行上进行。
因此,当您想在新行上打印星号时,您需要执行
print()
,它只打印一个换行字符,然后下一次打印将在新行上打印。用于print
的默认end
参数是一个换行('\n'
)。代码中打印多个星号的两个子句都去掉了带有end=''
(空字符串)的换行符。这就让下一个子句使用print()
添加换行符
编辑:澄清什么是
'
。使用此打印(n,end='')
命令时,它将打印在同一行上。要在下一行打印,需要使用print()
。如果不使用print()
它将继续在同一行上打印。确定因此,每当我在代码中包含(end='')时,下一个参数仍将跟踪end作为“”,而不是/n,即使它是默认输出?凉的非常感谢。重要的是要认识到换行符是要打印的字符,就像字母一样。唯一的区别是,默认情况下,print
将在换行符的常规参数之后打印换行符。通过将end
更改为空字符串,可以抑制换行输出。下面的print
调用实际上并没有“跟踪”任何内容。明白了。再次感谢你!这是我第一次学习python,我不知道当我打印时,上一个参数(end='')在下一行仍然有效。谢谢你分享你的知识。我将注意到它的进展情况。