作者ides13 (juso)
看板Python
標題Re: <請教>金字塔輸出的格式化問題
時間Mon May 8 10:54:45 2017
※ 引述《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
推 Conjuror: 好酷! 05/08 11:35
→ ides13: 不用format函式的話,可以用這個。 05/08 13:11
→ ides13: for i in range(a):print(" "*(a-1-i) + "*" + " *"*i) 05/08 13:12
→ uranusjr: 其實如果要用 format 的話可以這樣更酷 05/08 16:29
→ uranusjr: '{:>{}}'.format(' '.join(['*'] * (i + 1)), a + i) 05/08 16:36
→ uranusjr: 或者像這樣用置中也行 05/08 16:37
→ uranusjr: '{:^{}}'.format(' '.join(['*']*(i+1)), 2*a-1) 05/08 16:37
→ ides13: u大的作法的確比較酷。 05/08 20:15
→ s860134: format 的用法,可參照官方doc 05/08 21:44