0

我正在尝试打印如下所示的内容:

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

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

到目前为止,我已经设法使用以下代码打印头部:

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")

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

4

1 回答 1

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)
      *       
     ***      
    *****     
   *******    
  *********   
 ***********  
************* 
   *******    
   *******    
   *******    
   *******    
于 2013-10-28T17:33:50.617 回答