2017-04-14 9 views
-1

私は整数を取得し、ダイヤモンドを生成するプログラムを書いています。ダイヤモンドの形状を生成する

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

マイコード:

最速の方法(ない最も簡単なもの)であるものを
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) 

入力は、例えば、ダイヤモンドの辺の長さである整数は、結果がどうあるべき5ですpython 2.7を使ってこのダイヤモンドを生成するには?

+1

これは、いくつかの宿題ですか?あなたのコードを見せて、特定の質問をすることができますか? –

+0

コードがすぐに追加されました。プログラミング競争サイトの挑戦でした。 –

+0

@GiacomoDegliEspostiコードを追加しました。 –

答えて

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

関連する問題