获得类似
的输出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 y in range(10):
print
i = ?
for x in range(i):
print x,
i = i - 1
更新范围,但我不确定如何编写它。
或者我应该保持范围相同并以某种方式用空格替换每个整数吗?
答案 0 :(得分:2)
在每行打印数字之前打印空格:
for y in range(10):
print
i = 10 - y
print ' ' * (y * 2), # whitespaces
for x in range(i):
print x,
i = i - 1
答案 1 :(得分:2)
您可以使用str.format右键对齐输出,允许范围和空格,并在每次迭代时按-i
递减内部循环:
for i in xrange(10):
print("{:>19}".format(" ".join(map(str, xrange(10-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
如果您希望它适用于任何n
,您需要知道最长字符串的长度:
spaces = len(" ".join(map(str, xrange(n))))
for i in xrange(n):
print("{:>{spaces}}".format(" ".join(map(str, xrange(n-i))), spaces=spaces))