用Python制作三角形

用Python制作三角形,python,Python,下面是我用Python为我们的实验活动编写的代码,它构成了一个三角形 side = input("Input side: ") def triangle(x): print ((x - 1)*" "),"*" asterisk = "*" space = side for i in range(x): asterisk = "**" + asterisk space = (space-1) * " "

下面是我用Python为我们的实验活动编写的代码,它构成了一个三角形

side = input("Input side: ")

def triangle(x):
    print ((x - 1)*" "),"*"
    asterisk = "*"
    space = side
    for i in range(x):
            asterisk = "**" + asterisk
            space = (space-1) * " "
            print space,asterisk

triangle(side)
输出应如下所示:

  *
 ***
*****
我正确地得到了每行上星号的数量,但是我不知道如何使它看起来像一个三角形。使用上面的代码(我认为这可能是解决方案)总是在第9行产生错误。任何帮助我都感激。(我是新来的,所以如果我违反了一些规则,请告诉我。)谢谢,祝你好运

您将获得错误(
TypeError
),因为您正在使用字符串类型分配
空格
变量,然后在下一个循环中减去它。编辑后的代码看起来像这样(在Python2.7中),并且从不混合使用4个空格和8个空格缩进

side = input("Input side: ")

def triangle(x):
    print ((x)*" "),"*"
    asterisk = "*"
    spaces = side
    for i in range(x):
        asterisk = "**" + asterisk
        spaces -= 1
        print ' ' * spaces,
        print asterisk 

triangle(side)

我用python3.5写了一个新的,它可能适合你,但它并不完美

side = 4

def triangle(x):
    for y in range(1,x):
        s = 2*y - 1
        b = x - y
        print(" "*b+"*"*s)
triangle(side)
输出:

   *
  ***
 *****

提示:
str.center
第9行出现错误,因为您使用的是Python3,该行需要:
print(空格,星号)
@HaR我使用的是Python2.7.13。错误为“TypeError:不支持的操作数类型-:'str'和'int'”。I@Stick1000最好不要说你有错误。请改为显示错误(作为问题的编辑)。而且你在淹没中混合了4个空格和8个空格,参见
space
side
是一个需要转换为int的字符串。如果您在2018年学习Python,您一定要瞄准当前推荐和支持的语言版本,即Python 3。第二版本来已经被定为生命的终结,尽管它在临终关怀中度过了痛苦的额外几年。