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的性能。