我试图创建一个使用范围的程序,输出一个由星号组成的三角形。例如:
*
**
***
****
*****
******
*******
********
*********
**********
我无法理解如何做到这一点,我现在所拥有的只是:
number=10
for i in range(0,number,-1):
number="*"
print i
我知道这显然是错的,但我无法弄清楚如何去做。一些帮助将不胜感激,并记住我必须使用range
。
答案 0 :(得分:4)
number = 10
for i in range(number):
print "*" * i
请记住,对于任何字符串,乘法运算只会连接该字符串的副本。例如,"a" * 5 = "aaaaa"
。这就是这个难题的关键。
答案 1 :(得分:3)
你非常接近。让我编辑你自己的代码,指出你出错的地方,而不是编写我自己的代码。关于范围的一些事情是:
range(start,stop,steps)
是语法。当你说range(0,100)
时,请记住,它会取0到99之间的值(总计数为100,但不包括100)。range(0,10) = range(0,10,1)
以及如果必须从0开始则不需要再次指定它。现在range(0,10) = range(0,10,1) = range(10)
number=10 ## assigning 10 to number for i in range(0,number,-1): ## remove -1 number="*" ## totally unnecessary print i
number=10
for i in range(0,number,1): ## no need to mention the steps by default it'll be 1
print "*"*i ## * is multiplied i times and printed.
答案 2 :(得分:1)
我只是做
for i in range(1,11): #11 because it stops before the second number
print '*' * i
您也可以这样做:
s= '' #initialize our string
for i in range(10):
s+='*' #add an asterisk for each iteration
print s #print our one asterisk richer string
请注意,“foo + = bar”实际上只是“foo = foo + bar”的缩写
它们功能相同。