Re: <請教>金字塔輸出的格式化問題

看板Python作者 (juso)時間8年前 (2017/05/08 10:54), 8年前編輯推噓1(108)
留言9則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《momo123163 (RT-boy)》之銘言: : 批改娘上有一題是希望輸出格式化的金字塔 : 但我怎麼弄格式都不OK QQ : 這是題目希望輸出的樣子: : 最右邊都沒有空白!! : * : * * : * * * : * * * * : 但我的程式碼如下: : a = eval(input()) : for i in range(a): : for j in range(a-i-1): : print("2",end="") : for k in range(i+1): : print("*",end=" ") : print("") : 這樣的話雖然都很像(輸出2是我在練習時方便數空白數是否正確) : 但我最右邊一定都會有空白 : 想請問該怎麼解決 : 再拜託各位大神幫幫忙了!! a=4 for i in range(a): FEM='>'+str(a+i) stars="*"+" *"*i print(format(stars, FEM)) '^'置中。 ">"靠右。 "<"靠左。 a+i:指定寬度。 不知道這是不是你要的? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.32.131 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1494212088.A.E50.html ※ 編輯: ides13 (220.133.32.131), 05/08/2017 11:09:34 ※ 編輯: ides13 (220.133.32.131), 05/08/2017 11:11:13

05/08 11:35, , 1F
好酷!
05/08 11:35, 1F

05/08 13:11, , 2F
不用format函式的話,可以用這個。
05/08 13:11, 2F

05/08 13:12, , 3F
for i in range(a):print(" "*(a-1-i) + "*" + " *"*i)
05/08 13:12, 3F

05/08 16:29, , 4F
其實如果要用 format 的話可以這樣更酷
05/08 16:29, 4F

05/08 16:36, , 5F
'{:>{}}'.format(' '.join(['*'] * (i + 1)), a + i)
05/08 16:36, 5F

05/08 16:37, , 6F
或者像這樣用置中也行
05/08 16:37, 6F

05/08 16:37, , 7F
'{:^{}}'.format(' '.join(['*']*(i+1)), 2*a-1)
05/08 16:37, 7F

05/08 20:15, , 8F
u大的作法的確比較酷。
05/08 20:15, 8F

05/08 21:44, , 9F
format 的用法,可參照官方doc
05/08 21:44, 9F
文章代碼(AID): #1P3ztuvG (Python)
文章代碼(AID): #1P3ztuvG (Python)