# 限時聖誕節活動 ## 做出聖誕樹 + 請透過修改迴圈題目:金字塔的程式碼,印出聖誕樹。 + 請明確定義出函數 `XmasTree`,請參考以下範例輸出 ## 範例:XmasTree(7) > + 第一部分印出三角形(金字塔),有7層 > + 第二部分印出金字塔層數一半至最底層的層數,印出兩次,第4~7層 > + 你可以取 (層數+1)/2 或者 層數/2 開始都可以 > + 最後一部分印出樹幹 > + ==寬為: 2*(層數/2)-1 ,高為: (層數+1)/2== 的`*`號長方體 > + 如7層金字塔底層數為2*n-1 =13, > + 新的長方形寬為: 2*(7/2)-1=5 > + 高為: (7+1)/2=4 + 請注意樹要對稱,不對稱者不算正確答案,因為沒有控制好"空白格子" + 請特別注意長方體 + 寫完請寄程式碼到老師信箱: parttime0901@hlc.edu.tw + 請附程式碼,文檔:`.txt` `.doc` 程式檔: `.py` 都可 + 請標示你的`班級` `姓名` `座號` ### 參考函式結構 ```python= def XmasTree(w): firstPart(w) #印出頂端第一部分三角形 secondPart(w)#印出兩層梯形 rectangle(w)#印出長方形 def firstPart(w): ... def secondPart(w): ... def rectangle(w): ... XmasTree(7) ``` ``` * *** ***** ******* ********* *********** ************* ******* ********* *********** ************* ******* ********* *********** ************* ***** ***** ***** ***** ``` ## 金字塔 pyramid + 可用此題程式碼去修改 + 建議印出來觀察每次輸出的`空白`與`*`號數量來研究程式 ```python= #定義金字塔函數,輸入數字: 總層數 def Pyramid(w): #迴圈印出每層,有range(1,w+1)層,表示1~w層 for i in range(1,w+1): #每層要印出的東西為: 對應數量的空白+對應數量的*號(金字塔的石頭) layer=getspace(w,i)+getRock(i) print(layer) def getRock(n): #每層*號數量依序為:1,3,5,7,9 #推得每層*號數量是2*n-1個,請參考等差數列: a0+(n-1)*d s='*'* (2*n-1) return s def getspace(w,i): #計算每層前面的空白數量,空白數量= w(總層數)- 目前迴圈層數 #目前層數為i,所以空白數量= w-i spaceNum = w-i s=' '*spaceNum return s Pyramid(7) ```