2016-12-04 61 views
-1

我必須做出星號的這樣一個金字塔製作一個三角形:使用可變寬度輸出

* 
    *** 
    ***** 

我不得不使用一些所謂的可變寬度輸出:

for count in range(1,60,3): 
    myWidth = count 
    myCharacter = '*' 
    print('{0:>{width}}'.format(myCharacter, width=myWidth)). 

我想找到一種方法來循環,使它成爲金字塔,但幾乎沒有結果。我能做什麼?

+0

你在給定的?金字塔的高度,基地的寬度,「磚塊」的數量? – SheepPerplexed

+0

這完全取決於我們。我們確實有一個變量'myWidth',它會給我們三角形的最終寬度。 – whodis

+0

使用''*'* count'。你需要'範圍(1,60,2)'中的'2' – furas

回答

0

下面一個應該適合你。

def asterisks_printer(num): 
    counter = 1 
    while counter <= num: 
     print '{:^{width}}'.format('*' * counter, width = num) 
     counter +=2 

asterisks_printer(5) 

輸出:

* 
*** 
***** 
0

您可以隨時使用相同的width,然後你可以使用^居中文本 - 如圖所示Ahsanul哈克。

你需要2(未3)在range(1, width+1, 2)

def display(width): 
    for count in range(1, width+1, 2): 
     print('{0:^{width}}'.format('*' * count, width=width)) 

display(7) 

或者你必須使用(width+count)//2使用>

def display(width): 
    for count in range(1, width+1, 2): 
     print('{0:>{width}}'.format('*'*count, width=(width+count)//2)) 

display(7)