# Write a function called "pyramid" that takes an integer as input, and prints
a pyramid in the following pattern:
pyramid(1)
# *
pyramid(2)
# *
# ***
pyramid(4)
# *
# ***
# *****
# *******
想法是
最后一行就是 num*2-1
第一行的前半空格就是 最后一行的星星-1
所以设两个变量
block = num-1
star =1
我只要print" " *block + star * "*"就能得出第一行
然后补上每一行star +=2
block -=1就可以
def pyramid(num):
block = num - 1
star = 1
for i in range(num):
print(block * " " + star * "*")
star += 2
block -= 1
return block * " " + star * "*"s
卡最久的地方是,我一开始直观以为第一行的空格是6个
所以我一直在考虑怎么前面有空位后面也有空位
后来发现其实只有前面有
之后开始思考的时候,一开始本来是想用奇数的方式
因为每一层都是奇数个星星,1 3 5 7 9 .......
最后一排的星星会那一行的层数*2-1
但想不出来
就换个方法
第二题
Write a function called "inversePyramid" that draws pyramid upside down.
空格和星星的数量反过来
def inversePyramid(num):
block = 0
star = num * 2 - 1
for i in range(num):
print(block * " " + star * "*")
star -= 2
block += 1
星星是数字*2-1
空格从0开始+1就好
inversePyramid(4);
# *******
# *****
# ***
# *