首页 > 解决方案 > 嵌套循环打印星(*)[python]

问题描述

输出是:

下面的代码等于预期的输出。我只是想问为什么打印单个星号时需要先 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)

标签: pythonnested-loops

解决方案


当您打印单个星号时,您只需执行print(n), where n="*"
请注意,使用该函数时print,它会自动在末尾插入一个换行符 ( \n),这样每当您再次打印某些内容时,它就会出现在换行符上。
但是,这可以通过做覆盖print(n, end='')。这不会将换行符放在末尾,而是将结束字符放在末尾。
所以,现在,下一个打印不会转到下一行,而是继续在同一行。
因此,当您想在新行上打印星号时,您需要执行print(),它只打印一个换行符,然后下一次打印将打印在新行上。


推荐阅读