2017-03-15 64 views
0

這裏直角三角形的圖案是我的代碼畫一個直角三角形繪圖使用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不繼續pattern.This是輸出我的問題越來越

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

回答

0

您的格式看起來有點古怪,但你爲什麼要重啓for j in range(j, i)j?也就是說,你不應該從0 - >我?

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

打印爲printTriangle(5)

* 
* * 
* * * 
* * * * 
* * * * * 
+0

我的確很欣賞你的評論 –

2

有沒有需要有一個循環內的循環,在Python中,你可以乘串

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

爲什麼你還有** j **的功能?不用... – Prune

+0

哎呀!感謝您指出了這一點 –

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,但除此之外,這將給你一個三角形。