我正在创建一个绘制松树的程序,间距已关闭,我不知道如何解决它。
目前,代码如下:
def print_shifted_triangle(n, m, symbol):
p1 = " "
p2 = symbol
number_of_asterisks = 1
number_of_spaces = n-1
for i in range(1, n+1):
triangle = p1*m + p1*number_of_spaces + p2*number_of_asterisks
print(triangle)
number_of_asterisks = number_of_asterisks+2
number_of_spaces = number_of_spaces-1
def print_pine_tree(n, symbol):
for i in range(2,n+2):
print_shifted_triangle(i,0,symbol)
def main():
symbol = input("Please enter a symbol: ")
n = int(input("How many triangles? "))
print_pine_tree(n, symbol)
main()
当我输入符号@和n为3时,它会打印出来:
@
@@@
@
@@@
@@@@@
@
@@@
@@@@@
@@@@@@@
如何对齐间距以使其变为这样?
@
@@@
@
@@@
@@@@@
@
@@@
@@@@@
@@@@@@@
答案 0 :(得分:-1)
你应该知道最后一个元素长度(或预测)。比你可以使用text.center(last_elem_length,'')。
def print_pine(n, symbol):
pine_list = [[x*symbol+symbol for x in range(n+y) if x % 2 == 0] for y in range(n)]
max_len = len(pine_list[-1][-1])
for pine in pine_list:
for row in pine:
print(row.center(max_len, ' '))
print_pine(5, '@')
暂时存储在列表中,当我们知道最后一个元素的长度时,将在末尾打印“行”。
@
@@@
@@@@@
@
@@@
@@@@@
@
@@@
@@@@@
@@@@@@@
@
@@@
@@@@@
@@@@@@@
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@