首页 > 解决方案 > Python空心菱形图案程序优化

问题描述

我一直在探索 Python 并正在制作一个程序来生成如下所示的空心菱形图案:

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

这是它的代码。我想知道还有什么其他更好的方法可以降低复杂度(意味着更少的循环)

n = int(input("Enter Size of Pattern: "))
#Upper Traingles
for i in range(n, 0, -1):
    #Top Left Triangle
    for j in range(1, i+1): 
        print("*", end =" ")

    #Space between top triangles
    for j in range(n-i):
        print(" ",end=" ")

    #Top Right Triangle
    for j in range(n, 0, -1):
        if(i < j):
            print(" ",end=" ")
        else:
            print("*", end =" ") 

    print("\n", end="")

#Bottom Triangles    
for i in range(-1, n-1):
    #Bottom Left Triangle
    for j in range(-1, i+1): 
        print("*", end =" ")

    #Space between Bottom Triangles
    for j in range((n-2)-i):
        print(" ",end=" ")

    #Bottom Right Triangle
    for j in range(-1, n-1):
        if(j < (n-3)-i):
            print(" ",end=" ")
        else:
            print("*", end =" ") 

    print("\n", end="")

我是 python 新手,所以这个问题有点幼稚。帮助我降低此代码的复杂性。

我也见过很少的程序,但它们不能根据这个解决方案工作。

谢谢你的帮助

标签: pythonpython-3.xoptimization

解决方案


n = int(input("Enter pattern size: "))    

for i in range(n):
    print((n-i) * '* ' + (2*i) * ' ' + (2*i) * ' ' + (n-i) * '* ' )
for i in range(n-1, -1, -1):
    print((n-i) * '* ' + (2*i) * ' ' + (2*i) * ' ' + (n-i) * '* ')

输出:

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

推荐阅读