圣诞树-Python循环

其实这个问题还是再练习我们对于循环,以及如何找规律。

n = int(input("输入一个整数"))
i = 1
while i <= n:
    a = 2 * i - 1
    b = "*" * a
    print(b.center(2 * n - 1))
    i += 1
else:
    c = 1
    while c <= n:
        d = "*" 
        print(d.center(2 * n - 1))
        c += 1

我们来实现它时,重点实在怎样实现每行的数据居中以及每行数据的个数,

我们用‘*’来表示这颗树, a表示每行有多少个‘*’,a就是找到的每行个

数的规律,然后用center方法来进行对齐,(2*n-1)为最后一行的‘*’的个数。

树干,用‘*’一个就可以,center居中就可以。

输入一个整数5
    *    
   ***   
  *****  
 ******* 
*********
    *    
    *    
    *    
    *    
    *    

打印结果如上。

还有一个改进版:

3改进上述代码   打印为数字   如:输入3
               1
              222
             33333
               *
               *
               *
n = int(input("输入一个整数"))
i = 1
while i <= n:
    a = 2 * i - 1
    b = str(i) * a
    print(b.center(2 * n - 1))
    i += 1
else:
    c = 1
    while c <= n:
        d = "*" 
        print(d.center(2 * n - 1))
        c += 1

其实这个改进就是树枝部分有所改变,我们可以看出,每行都随行数改变,

也就是说只要我们改变每行 b = '*' * a 中的‘*’就可以改变树枝的内容,

我们改为i这个变量,来改变每行的内容,输出时需要改为字符串类型,因

为i是 int 整数类型,不能用center方法。

输出如下:

输入一个整数5
    1    
   222   
  33333  
 4444444 
555555555
    *    
    *    
    *    
    *    
    *    


你可能感兴趣的:(Python小练习,循环理解)