星号三角形
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N个星号。
n=eval(input())
for i in range(1,n+1,2):
print("{0: ^{1}}".format('*'*i,n))
-
range()函数的用法示例:
可见,range中参数不同所表示的意思也不同,range(a,b,c)是指从a到b(不包括b)中,每间隔c输出。 -
.format()中槽机制
<模板字符串>.format(<逗号分隔的参数>) 中槽机制即为以{}大括号括起来的模板字符串
从这个例子中可以看出,槽可以嵌套槽。对于"{0: ^{1}}".format('*'*i,n)
中为何嵌套的{}槽中会有个数字1,进行了如下验证
我将外面槽中的0与嵌套槽中的1替换了位置,运行程序,报错
将0删除运行程序,报错
将1删除运行程序,依旧报错
最后,我将0与1的位置调换,将format()中参数位置也进行调换,发现程序正常输出
对于槽机制,我们可以在模板字符串中的槽中指定需要添加的参数的位置,即将参数对应的序号写入模板字符串的对应槽中即可
槽内部对格式化的配置方式
{ < 参数序号 > : < 格式控制标记 > }
: | < 填充 > | < 对齐 > | < 宽度 > |
---|---|---|---|
引导符号 | 用于填充的单个字符 | <左对齐 >右对齐 ^居中对齐 | 槽设定的输出宽度 |
例如:
"{0:-^20}".format("PYTHON")
结果为:
'-------PYTHON-------'
"{0:*>20}".format("BIT")
结果为:
'*****************BIT'
"{:10}".format("BIT")
结果为:
'BIT '
# 默认情况下填充为空格,变量左对齐
< ,> | < .精度 > | < 类型 > |
---|---|---|
数字的千位分隔符 | 浮点数小数精度或字符串最大输出长度 | 整数类型b,c,d,o,x,X 浮点数类型e,E,f,% |
例如:
"{0:,.2f}".format(12345.6789)
结果为:
'12,345.68'
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
结果为:
看得出我们以 :b输出它的二进制格式,以:c输出字符形式,以:d输出十进制,:o八进制,:x十六进制,:X大写的十六进制
print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
结果为:
得出以 :e输出的是采用科学计数法e形式来表示浮点数,:E使用科学计数法E形式表示浮点数,:f以通常的非科学计数法形式表示浮点数,:%以百分数形式表示浮点数