Python 在程序中创建空间

Python 在程序中创建空间,python,Python,我有一个程序,当我运行它时会返回: A AAA AAAAA AAAAAAA AAAAAAAAA 但是我希望它看起来像这样 A AAA AAAAA AAAAAAA AAAAAAAAA 我的代码如下所示: #A triangle def print_triangle(letters, rows): for i in range(rows): print(5 * (-i) * " " + letters * (i * 2 + 1)) pr

我有一个程序,当我运行它时会返回:

A
AAA  
AAAAA
AAAAAAA
AAAAAAAAA
但是我希望它看起来像这样

    A
   AAA  
  AAAAA
 AAAAAAA
AAAAAAAAA
我的代码如下所示:

#A triangle
def print_triangle(letters, rows):

    for i in range(rows):

        print(5 * (-i) * "  " + letters * (i * 2 + 1))

print_triangle("A",5)

如果您使用的Python版本低于3.0(如2.7.6),请尝试使用和不间断空格字符
160

def print_triangle(letters, rows):

    for i in range(rows):

    print(5 * (-i) * unichr(160) + letters * (i * 2 + 1))

print_triangle("A",5)
在Python verison 3.0及更高版本中,请尝试使用相同的
160
字符:

def print_triangle(letters, rows):

    for i in range(rows):

    print(5 * (-i) * chr(160) + letters * (i * 2 + 1))

print_triangle("A",5)

使用
str.format
以获得最佳效果

BASE_WIDTH = 7
formattingstring = "{}{}{}".format("{:^",BASE_WIDTH,"}")
for substring in ['A',"AAA","AAAAA","AAAAAAA"]:
    formattingstring.format(substring)
这使用了一些格式技巧来创建一个字符串
“{:^7}”
,该字符串使用常量
BASE\u WIDTH
来提取其大小(在本例中为
7


str.format
将原始字符串中的所有
{}
替换为您传递给它的参数,并且
之后的任何内容都是格式化字符串。在这种情况下,
^
表示居中对齐,
7
表示宽度为7个字符。

为什么使用
5*(-i)*“

试试这个:

def print_triangle(letters, rows):
    for i in range(rows):
        print((rows-i-1) * " " + letters * (i * 2 + 1))
print_triangle("A",5)

请修正你的缩进。目前,<<代码> < /COD>和<代码>打印< /COD>语句处于相同的缩进级别。此外,您希望“代码”>Z’*(-2)< /代码>产生什么?最初,当我试图使它工作时,我处于测试的中间,所以我在尝试一切和一切,这就是代码如此糟糕的原因。哈哈。Protip:打开python交互控制台,玩转你不确定的每一个小片段。谢谢你的建议@乔纳森·莱因哈特。。为什么不简单地增加适当数量的空间呢?这很公平。不是Python程序员&假设空的
可能无法正确解析。我很想了解更多关于Python的知识,但是,嘿。通过设置
BASE_WIDTH=2*rows-1
并使用
[formattingstring.format(“A”*(n*2+1))表示范围(rows)中的n,可以改进Python的性能。