1、正金字塔

如图:

代码如下:

level=int(input("请输入行数:"))
# 方式一:
for current_level in range(1,level+1):
    #控制空格个数
    for i in range(level-current_level):
        print(' ',end='')
    #控制*个数
    for j in range(2*current_level-1):
        print('*',end='')
    print()
#方式二:
for i in range(1,level+1):
    print(
        ' '*(level-i)+'*'*(2*i-1)
    )

2、倒金字塔

如图所示:

代码如下:

level=int(input("输入行数:"))
#方法1
for current_level in range(0,level):
    #控制空格个数
    for i in range(current_level+1):
        print(' ',end='')
    #控制*个数
    for j in range(level-2*current_level):
        print('*',end='')
    print()
#方法2
for i in range(level):
    print(' '*i+'*'*(level-2*i))

此两种方法有缺陷,行数只能输入奇数,输入偶数会出现少行的现象。如图所示:

优化代码如下:

#与正金字塔相对应
for i in range(level):
    print(' '*i+'A'*(2*level-2*i-1))

 测试结果如下:

 

posted on 2019-07-02 22:57  痴人谈情  阅读(5145)  评论(0编辑  收藏  举报