Python3.4:尝试.r使用一个完整的数字循环

2024-06-16 14:26:10 发布

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

我一直在研究这个问题几天了(断断续续)。我知道我需要在内部循环之外创建一个“间隔”循环,但我不知道如何实现它。我做了很多尝试和错误,感觉我很接近。在

请记住这是我第一次上编程课(任何语言)。在

我试图编辑我的代码,使其看起来像(抱歉,我很难尝试正确的格式,基本上与下面的列表相同,但是.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

我可以让它看起来像:

^{pr2}$

基本上我需要。r每排都要做,但在工作中遇到了问题。我知道如果我使用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="")  

Tags: 代码in语言编辑for间隔格式编程
2条回答

使用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

如果需要间距,则右对齐必须加倍>

^{pr2}$

对于列之间的间距,只删除换行符:

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

这里它正在使用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:

^{pr2}$

相关问题 更多 >