2017-04-06 49 views
1

我有這個簡單的金字塔。它的工作原理是這樣的: 1.您輸入一個數字和/或多個字符 2.您將收到一個將顯示您的號碼乘以字符的打印。該表將顯示爲金字塔。金字塔與多個字符不工作

我想獲得Len()的字符串,然後我不知道我能做些什麼來讓它對齊。

Problem : If you do 5 G 
    G 
    GG 
    GGG 
GGGG 
GGGGG 

But if you do 5 GG 
    GG 
GGGG 
GGGGGG 
GGGGGGGG 
GGGGGGGGGG 

我的rjust似乎並沒有做到這一點。


import sys 


def pyramide(nbr, char): 
    resultat = '' 
    for i in range(0, nbr+1): 
     resultat += (nbr * str('') + int(i) * str(char) + "\n").rjust(nbr+1) 
    return resultat 

def main(): 
    nbr = int(sys.argv[1]) 
    char = (sys.argv[2]) 
    message = pyramide(nbr, char) 
    print(message) 

if __name__ == "__main__": 
    main() 
+0

輸入多個字符行爲與「你輸入一個數字和一個字符」的要求不符,所以我不驚訝它不起作用。 – TigerhawkT3

+0

但我希望它對齊,即使用戶會輸入多個字符 –

+0

更改rjust(nbr + 1)到rjust(len(char)* nbr + 1) – Shiping

回答

0

我會通過增加prespacing開始,然後我加入的字符數:

def pyramide(size, char): 
    resultat = '' 
    for i in range(0, size): 
     resultat += (' ' * (size-i)) + (char * int(i*2+1)) + '\n' 
    return resultat 
+0

我使用了上面的航運解決方案。減少代碼的更改:) –

+0

resultat + =(nbr * str('')+ int(i)* str(char)+「\ n」)。rjust(len(char)* nbr + 1) –