制作树形。

时间:2013-10-28 17:23:47

标签: python python-2.7

我正在尝试打印这样的内容:

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

用户输入头部最厚部分的宽度和杆的宽度。

到目前为止,我已经设法使用此代码进行打印:

def head(size):
    n=1
    while n < size+1:
        astri = n * "*"
        print '{:^50}'.format(astri)
        n += 2

 print head(x)

x = input("Please enter an odd integer for the head")

但我完全坚持如何做树干。

1 个答案:

答案 0 :(得分:4)

这样的事情:

def tree(head, stem):
    #for head
    for i in xrange(1, head+1, 2):
        print '{:^{}}'.format('*'*i, head)
    #for trunk
    for _ in xrange(3):
        print '{:^{}}'.format('*'*stem, head)
...         
>>> tree(10, 3)
    *     
   ***    
  *****   
 *******  
********* 
   ***    
   ***    
   ***    
>>> tree(5, 1)
  *  
 *** 
*****
  *  
  *  
  *  

<强>更新

保持stem的宽度与head的宽度成比例:

def tree(head, stem):
    for i in xrange(1, head+1, 2):
        print ('*'*i).center(head)
    x = (head/2) if (head/2)%2 else (head/2)-1
    for _ in xrange(stem):
        print ('*'*x).center(head)

>>> tree(12, 2)
     *      
    ***     
   *****    
  *******   
 *********  
*********** 
   *****    
   *****    
>>> tree(14, 4)
      *       
     ***      
    *****     
   *******    
  *********   
 ***********  
************* 
   *******    
   *******    
   *******    
   *******