如何以更好的方式格式化Geeksforgeks问题的输出

2024-10-03 21:28:47 发布

您现在位置:Python中文网/ 问答频道 /正文

def doorcheck(n):

    doors = []
    for i in range(n):
        doors.append(False)

    for i in range(n):
        for x in range(n):
            if (x+1) % (i+1) == 0:
                if(doors[x] is False):
                    doors[x] = 1
                else:
                    doors[x] = 0
    for i in range(n-1):
        print(doors[i], end = ' ')
    print(doors[n-1], end = '\n')

t = int(input())
for i in range(t):
    n = int(input())
    doorcheck(n)

在这里,我试图在单独的一行中打印每个所需的输出。 如问题中所问

Example:
Input:
2
3
5
Output:
1 0 0
1 0 0 1 0

我用过

for i in range(n-1):
    print(doors[i], end = ' ')
print(doors[n-1], end = '\n')

上述代码用于此目的。有更好的方法吗

编辑1:我上面写的代码有一个bug。但无论如何,@Barmar为我的问题提供了一个极好的解决方案,那就是以简洁的方式格式化输出。他还建议初始化一个数组,该数组在整个长度上包含相同的元素。谢谢


Tags: 代码infalseforinputifdefrange