生成菱形

时间:2017-04-14 10:26:31

标签: python python-2.7

我正在编写一个获取整数并生成钻石的程序。输入是菱形的边长,例如整数是5,结果应该是:

----*----
---***---
--*-*-*--
-*--*--*-
*********
-*--*--*-
--*-*-*--
---***---
----*----

我的代码现在:

side = int(raw_input())
x = (side * 2) - 1
middle = x // 2
a = ""
for i in range(side - 1):
    t = ["-"] * x
    t[middle - i] = "*"
    t[middle + i] = "*"
    t[middle] = "*"
    a += "".join(t)
    a += "\n"
t=a[:-1]
a += "*" * x + "\n"
a += t[::-1]
print(a)

使用python 2.7生成此钻石的最快方式(不是最简单的方法)是什么?

1 个答案:

答案 0 :(得分:3)

def Diamond(size):
    for n in (lambda x : x[:-1]+x[::-1])([size-i-1 for i in range(size)]):
        row = ["-" if i != n else "*" for i in range(size)]
        print(["".join(row[:-1] +["*"]+ row[size-2::-1]) if n != 0 else "*"*(size*2-1)][0])

calling function in IDLE