多个字符不起作用的金字塔

时间:2017-04-06 00:24:07

标签: python

我有这个简单的金字塔。它的工作原理如下: 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

我的好处似乎没有为此做到这一点。

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()

2 个答案:

答案 0 :(得分:0)

我首先添加预设,然后添加字符数量:

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

答案 1 :(得分:0)

您也可以使用format居中:

def pyramide(nbr, char):
    resultat = ''
    for i in range(0, nbr+1):
        chars = char * int(i*2+1)
        resultat += '{:^30}'.format(chars) + '\n'
    return resultat

https://docs.python.org/3/library/string.html#format-examples