Re: [閒聊] python小白問個問題

作者: erimow (Erimo)   2024-08-09 10:41:06
# 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);
# *******
# *****
# ***
# *
作者: tsukiyo99 (OωO)   2024-08-09 10:44:00
大師
作者: Rushia (みけねこ的鼻屎)   2024-08-09 10:45:00
這到底是甚麼 你選修的程式課ㄇ你要去澳洲當碼農喔那你不該練題而是先打好語言的基礎吧
作者: MurasakiSion (紫咲シオン)   2024-08-09 10:52:00
你確定你之前的課程有看懂(
作者: erimow (Erimo)   2024-08-09 10:53:00
不練習也不知道懂不懂啊==

Links booklink

Contact Us: admin [ a t ] ucptt.com