2013-04-09 739 views
0

我在遇到這個問題時遇到了麻煩,我無法弄清楚。這就是我們被要求做的事情。使用python,如何使用for循環創建金字塔?

「在FOR循環中只寫一個只有一個打印命令且只有一個打印命令的程序提供以下輸出:可以使用FOR/NEXT循環外的另一個PRINT命令,可以使用字母'Y'只有一次在你的程序中。「

而且它應該是這個樣子

Ÿ
YY
YYY
YYYY
YYYYY
YYYYYY

我很想知道如何做到這一點,它已經煩我整個星期,但它只是一個額外的信用問題,所以我的老師從來沒有解釋如何做到這一點! :(

幫助是非常感謝! -Alex

+3

你最接近的嘗試是什麼......沒有人想破壞那個啊哈時刻:P – 2013-04-09 22:39:45

+0

[需要在Python上重新創建金字塔三角形](http://stackoverflow.com/questions/15559435/need - 重新創建金字塔三角形上的蟒蛇) – eandersson 2013-04-09 22:57:15

回答

3

你可以做一些簡單的像這樣。

def create_pyramid(rows): 
    for i in range(rows): 
     print('Y' * (i + 1)) 

create_pyramid(6) 

基本上你設置了for loop你想要的行數。如果使用range(number_of_rows)你會得到一個循環,從0開始到1,2等循環,直到循環了6次,然後你使用multiplying這個Y這個數字,你想在每一行使用'Y' * i,但是保留在介意for循環開始合作從零開始,所以你需要add+ 1到你的i變量。最後,使用print將每行的Y個字符的數量輸出到屏幕。

這樣做的輸出將是:

Y 
YY 
YYY 
YYYY 
YYYYY 
+5

-1爲他寵壞了啊哈時刻:(至少你解釋過,所以+1 ... – 2013-04-09 22:51:32

+2

@JoranBeasley我刪除了我的答案出於這樣的原因 :)。 – squiguy 2013-04-09 22:54:58

+0

@JoranBeasley它很可能基於這一個http://postimg.org/image/bp4v98ytf/,我知道這裏至少有一些重複沒有實際的解釋堆棧,所以我想我會實際給他回答一次解釋,以便他可以真正學到一些東西。 – eandersson 2013-04-09 22:55:36

0

嘗試:

for i in range(1,10):      
    for j in range(0+i):   
    print 'y',   
print '\n' 
+0

在Python 3.5中測試,這將不會運行 – AlgoRythm 2016-10-01 03:43:15

0
for x in range(1,6+1): 
    print ('Y'*x) 

您可以用行數更換6。