我正在编写一个获取整数并生成钻石的程序。输入是菱形的边长,例如整数是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生成此钻石的最快方式(不是最简单的方法)是什么?
答案 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])