2013-04-09 747 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。