字符串
格式化字符串的语法如下:
replacement_field::="{"[field_name]["!"conversion][":"format_spec]"}"
field_name::=arg_name("."attribute_name|"["element_index"]")*
arg_name::=[identifier|integer]
attribute_name::=identifier
element_index::=integer|index_string
index_string::=<anysourcecharacterexcept"]">+
conversion::="r"|"s"|"a"
format_spec::=<describedinthenextsection>
3.1.3.1’%03.2f’就表示为’{:03.2f}’。不过,新的格式化方式也有些新选项和不同的使用方式,如下面的例子:
通过位置来访问参数:
#string
importstring
print(‘{0},{1},{2}’.format(‘a’,’b’,’c’))
print(‘{},{},{}’.format(‘a’,’b’,’c’))
print(‘{2},{1},{0}’.format(‘a’,’b’,’c’))
print(‘{2},{1},{0}’.format(*’abc’))
print(‘{2},{1},{2}’.format(‘abc’,’123′,’888′))
结果输出如下:
a,b,c
a,b,c
c,b,a
c,b,a
888,123,888
在这个例子里,,语句
在语句
通过名称来访问参数:
print(‘mouse:({x},{y})’.format(x=’100′,y=’200′))
mousept={‘x’:’200′,’y’:’888′}
print(‘mouse:({x},{y})’.format(**mousept))
结果输出如下:
mouse:(100,200)
mouse:(200,888)
在语句
访问参数的属性:
print(‘
classPoint:
def__init__(self,x,y):
self.x,self.y=x,y
def__str__(self):
return’Point({self.x},{self.y})’.format(self=self)
print(str(Point(5,5)))
输出结果如下:
复数的属性访问,实部
Point(5,5)
在语句
访问参数的项:
xy=(20,30)
print(‘X
输出结果如下:
X
通过这个例子里可以看到在格式化中直接访问元组的项,比如
使用
print(‘repr():{!r};str():{!s}’.format(‘abc’,’123′))
输出结果如下:
repr():’abc’;str():123
通过这个例子,就可以看到使用
字符串排列和宽度对齐
print(‘{:<30}’.format(‘
print(‘{:^30}’.format(‘
输出结果如下:
左对齐
右对齐
居中对齐
*************
print(‘{:+f};{:+f}’.format(0.618,-0.618))
print(‘{:f};{:f}’.format(0.618,-0.618))
print(‘{:f};{:f}’.format(0.618,-0.618))
print(‘{:-f};{:-f}’.format(0.618,-0.618))
输出结果如下:
+0.618000;-0.618000
0.618000;-0.618000
0.618000;-0.618000
0.618000;-0.618000
替换
print(‘int:{0:d};hex:{0:x};oct:{0:o};bin:{0:b}’.format(55))
print(‘int:{0:d};hex:{1:x};oct:{0:o};bin:{0:b}’.format(55,64))
print(‘int:{0:#d};hex:{0:#x};oct:{0:#o};bin:{0:#b}’.format(55))
输出结果如下:
int:55;hex:37;oct:67;bin:110111
int:55;hex:40;oct:67;bin:110111
int:55;hex:0x37;oct:0o67;bin:0b110111
用逗号作为千位的分隔符
print(‘{:,}’.format(9876543210))
print(‘{0:,}’.format(88888888888889876543210))
输出结果如下:
9,876,543,210
88,888,888,888,889,876,543,210
格式化时输出百分比值
print(‘
输出结果如下:
百分比输出:
print(‘{0:{fill}{align}16}’.format(text,fill=align,align=align))
width=5
fornuminrange(5,12):
forbasein’dXob’:
print(‘{0:{width}{base}}’.format(num,base=base,width=width),end=”)
print()
输出结果如下:
左<<<<<<<<<<<<<<<
^^^^^^^中^^^^^^^^
>>>>>>>>>>>>>>>右
555101
666110
777111
88101000
99111001
10A121010
11B131011
多个格式化模板并列
IPAddr=[192,168,0,8]
print(‘{:02X}{:02X}{:02X}{:02X}’.format(*IPAddr))
输出结果如下:
C0A80008
蔡军生 QQ:9073204 深圳
版权声明:本文为博主原创文章,未经博主允许不得转载。
每个人在他的人生发轫之初,总有一段时光,