這是我的代碼,但我很難讓金字塔像金字塔一樣正確地間隔,並且每行只有奇數個星號。當你爲基地進入7應該是星號金字塔沒有間隔正確
*
***
*****
*******
輸出這是我的代碼:
base = int(input('enter an odd number for the base : '))
for i in range(0, base):
print '*' * i
這是我的代碼,但我很難讓金字塔像金字塔一樣正確地間隔,並且每行只有奇數個星號。當你爲基地進入7應該是星號金字塔沒有間隔正確
*
***
*****
*******
輸出這是我的代碼:
base = int(input('enter an odd number for the base : '))
for i in range(0, base):
print '*' * i
你可以使用str.center()
:
for i in range(1, base + 1, 2):
print ('*' * i).center(base)
但要儘量用2步長,並調整你的範圍。第一行始終爲1星,而range()
不包含最後一個值。
對於7
,這意味着你想打印1,3,5和7顆星,每次迭代增加2。
如果我現在想用奇數和2來做每次迭代的同樣的事情,但做出一個菱形,我該怎麼做?我假設你將不得不有三角形鏡子本身,但我不知道該怎麼做 – user3317056
使用*兩個*循環;第二個將使用負面步驟來縮小範圍。第一個循環可以從'range(1,base,2)'開始,第二個循環可以到'range(base,0,-2)'。 –
其實我只是在我看到你的評論之前試過,但是我無法擺脫顯示兩倍的基數 – user3317056
有在你的代碼中的一些錯誤:
print '...'
而不是函數print
,你可能會在python2,在那裏,而不是需要的input
raw_input
;range(1, base+1, 2)
需要改爲您的示例輸出。演示:
In [6]: base = int(raw_input('enter an odd number for the base : '))
...: for i in range(1, base+1, 2):
...: print ('*' * i).center(base)
enter an odd number for the base : 7
*
***
*****
*******
哇,這是從過去的爆炸:http://stackoverflow.com/questions/4911341/pyramid-of-asterisks-program-in-python/4911427# 4911427 –