作者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://webptt.com/cn.aspx?n=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
1F:推 Conjuror: 好酷! 05/08 11:35
2F:→ ides13: 不用format函式的话,可以用这个。 05/08 13:11
3F:→ ides13: for i in range(a):print(" "*(a-1-i) + "*" + " *"*i) 05/08 13:12
4F:→ uranusjr: 其实如果要用 format 的话可以这样更酷 05/08 16:29
5F:→ uranusjr: '{:>{}}'.format(' '.join(['*'] * (i + 1)), a + i) 05/08 16:36
6F:→ uranusjr: 或者像这样用置中也行 05/08 16:37
7F:→ uranusjr: '{:^{}}'.format(' '.join(['*']*(i+1)), 2*a-1) 05/08 16:37
8F:→ ides13: u大的作法的确比较酷。 05/08 20:15
9F:→ s860134: format 的用法,可参照官方doc 05/08 21:44