我一直在研究这个问题几天(关闭和开启)。我知道我需要在内部循环外部创建一个“间距”循环,但我不知道如何实现它。我做了很多试验和错误,觉得我非常接近。
请记住,这是我的第一个编程课程(适用于任何语言)。
我正在尝试编辑我的代码(抱歉,我很难尝试使格式正确,基本上与下面的列表相同但是.rjust(10)
:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0
我能够看起来像:
0123456789
012345678
01234567
0123456
012345
01234
0123
012
01
0
基本上我需要.rjust每一行,但有问题使它工作。我知道如果我使用print(str(0123456789).rjust(10))
它会给我我想要的东西(第一行),但我需要在循环中实现它。
这是我到目前为止的代码:
for i in range(10,0,-1):
print()
print()
for j in range(i):
stringnum=str(j)
print(stringnum,end="")
答案 0 :(得分:3)
使用format-specification-mini-language:
for i in range(10,-1,-1):
print("{:>10}".format("".join(map(str,range(i)))))
0123456789
012345678
01234567
0123456
012345
01234
0123
012
01
0
如果你想要间距,你必须加倍右对齐>
:
for i in range(10,-1,-1):
print("{:>19}\n".format(" ".join(map(str,range(i)))))
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0
对于列之间的间距,只删除换行符:
for i in range(10,-1,-1):
print("{:>19}".format(" ".join(map(str,range(i)))))
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0
答案 1 :(得分:1)
这里使用的是rjust
:
>>> for x in range(10,-1,-1):
... print("".join(map(str,range(x))).rjust(10))
...
0123456789
012345678
01234567
0123456
012345
01234
0123
012
01
0
在上面的代码中,我首先将所有integer
转换为string
,然后我使用join
一起加入列表以形成字符串。
rjust
以长度为一的字符串返回左对齐的字符串。
整数之间的空格,你只需要在join
函数中添加空格,rjust值就是19:
>>> for x in range(10,-1,-1):
... print(" ".join(map(str,range(x))).rjust(19))
...
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0