使用python绘制一个直角三角形图案

时间:2017-03-15 16:41:31

标签: python

这是我绘制直角三角形的代码

def printTriangle(width):
    j = 0
    for i in range(0,width):
       for j in range(j,i):
             print("*", end=" ")  # single line
             #j=j+1
       #i= i + 1
       print("* ")

问题是,当宽度超过3时,它不会继续模式。这是我得到的输出

* 
* * 
* * * 
* * * 
* * * 

3 个答案:

答案 0 :(得分:2)

没有必要在循环中有一个循环,在python中你可以乘以字符串

def printTriangle(width):
    for i in range(0,width):
       print("* " * i)

答案 1 :(得分:0)

您在问题中的格式看起来有点奇怪,但为什么要在j中重新启动for j in range(j, i)?也就是说,你不应该从0开始 - >我?

def printTriangle(width):
    for i in range(0,width):
        for j in range(0,i):
            print("*", end=" ")  # single line
        print("* ")

打印printTriangle(5)

* 
* * 
* * * 
* * * * 
* * * * * 

答案 2 :(得分:0)

使用range()是一个好主意,因此您可以删除所有初始化。我猜你只需要一个for循环,因为只有三角形内的空间因每一行而异:

def printTriangle(width):
   # Top section is always a point
   print('*')

   # Middle section has two stars and varying space in between
   for i in range(width - 2):
      print('*' + ' ' * i + '*')

   # Base section is always a row of `width` stars
   print('*' * width)

你可能希望避免width小于2,否则这会给你一个三角形。