python - 如何以更好的方式格式化输出以解决 geeksforgeeks 问题
问题描述
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:我写的上面的代码有一个错误。但无论如何@Barmar 为我的问题提供了一个很好的解决方案,即以简洁的方式格式化输出。他还提出了一个初始化数组的建议,该数组在整个长度上都包含相同的元素。谢谢。
解决方案
如果您只想打印doors
由空格分隔的元素,请使用join()
print(' '.join(map(str, doors)))
您还可以将初始化的循环替换为doors
:
doors = [False] * n
推荐阅读
- hyperledger-fabric - 将排序者添加到超级账本结构中的现有通道
- php - HTML 表单 - 使用 PHP 帖子输入隐藏的输入类型不起作用
- java - Java字符串将存储的值重置为null
- javascript - 使用 npm store.js 包在 cookie 上设置过期日期
- python - Discord.py 赋予角色
- python - 累计计算列表中每个元素的出现次数
- javascript - MongoDB:聚合,对象数组到字符串值
- android - 是否可以为每行提供具有不同宽度的垂直回收器视图?
- azure - 努力让“部署到 azure 按钮”工作
- r - R中文件的用户输入和输出路径