1 # 画树 2 # 程序运行结果图: 3 # 这个树有多高?:12 4 # # 5 # ### 6 # ##### 7 # ####### 8 # ######### 9 # ########### 10 # ############# 11 # ############### 12 # ################# 13 # ################### 14 # ##################### 15 # ####################### 16 # # 17 18 # 程序部分 19 20 # 获取树冠的层数 21 long = int(input('这个树有多高?:')) 22 # 为最后一行树干做预留的变量 23 butt = long 24 # 初始#号数量 25 hashes = 1 26 27 # 开始循环 28 while long > 0: 29 # 第一层的空格等于树冠的层数,之后依次递减,因此用循环输出n个空格。 30 for i in range(0, long): 31 # 由于输出要求为单行输出,所以指定print()的结束符为'' , 而不是默认的换行。 32 print(' ', end='') 33 34 # 输出过空格后,输出当前层的#号, 第一层为1个,之后每层递增2. 35 for j in range(0, hashes): 36 print('#', end='') 37 # 由于上一个for循环指定了结束符为'', 在这里需要加一个换行输出 38 print('') 39 # 完成一层输出后,变量赋值,层数递减1,#号递增2. 40 long = long - 1 41 hashes = hashes + 2 42 43 # 完成树冠输出后,输出树干部分。树干部分和树冠的第一层是一样的。 44 # 这是只输出一个#作为树干的代码。 45 # for i in range(0, butt): 46 # print(' ', end='') 47 # print('#') 48 49 # 这一块加点东西,根据树冠的层数,来决定树干的长度,如果小于10层,那么树干是1个# 50 if butt < 10: 51 for i in range(0, butt): 52 print(' ', end='') 53 print('#') 54 else: 55 # 如果树冠高于10层,那么树干高度= 树冠高度/4 + 树冠高度与3取模。 56 ss = ((butt // 4) + (butt % 3)) 57 while ss > 0: 58 for j in range(0, butt): 59 print(' ', end='') 60 print('#') 61 ss = ss - 1