python中的format函数例题_Python中的format函数format是python2.6新增的⼀个格式化字符串的⽅法,相对于⽼版的%格式⽅法,它有很多优点。
1.不需要理会数据类型的问题,在%⽅法中%s只能替代字符串类型
python格式化输出format2.单个参数可以多次输出,参数顺序可以不相同
3.填充⽅式⼗分灵活,对齐⽅式⼗分强⼤
4.官⽅推荐⽤的⽅式,%⽅式将会在后⾯的版本被淘汰
format的⼀个例⼦
1
print'hello {0}'.format('world')
会输出hello world
format的格式
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          ::=      +
conversion              ::=      “r” | “s” | “a”
format_spec            ::=
format_spec 的格式
format_spec   ::=    [[fill]align][sign][#][0][width][,][.precision][type]
fill             ::=   
align           ::=    ”” | “=” | “^”
sign            ::=    ”+” | “-” | ” “
width          ::=    integer
precision       ::=    integer
type            ::=    ”b” | “c” | “d” | “e” | “E” | “f” | “F” | “g” | “G” | “n” | “o” | “s” | “x” |“X” | “%”
应⽤:
⼀ 填充
1.通过位置来填充字符串
1
print'hello {0} i am {1}'.format('Kevin','Tom')# hello Kevin i am Tom
print'hello {} i am {}'.format('Kevin','Tom')# hello Kevin i am Tom
print'hello {0} i am {1} . my name is {0}'.format('Kevin','Tom')# hello Kevin i am Tom . my name is Kevin foramt会把参数按位置顺序来填充到字符串中,第⼀个参数是0,然后1 ……
也可以不输⼊数字,这样也会按顺序来填充
同⼀个参数可以填充多次,这个是format⽐%先进的地⽅
2.通过key来填充
1
print'hello {name1}  i am {name2}'.format(name1='Kevin',name2='Tom')# hello Kevin i am Tom
3.通过下标填充
1
2
3
names=['Kevin','Tom']
print'hello {names[0]}  i am {names[1]}'.format(names=names)# hello Kevin i am Tom
print'hello {0[0]}  i am {0[1]}'.format(names)# hello Kevin i am Tom
4.通过字典的key
1
2
names={'name':'Kevin','name2':'Tom'}
print'hello {names[name]}  i am {names[name2]}'.format(names=names)# hello Kevin i am Tom
注意访问字典的key,不⽤引号的
5.通过对象的属性
1
2
3
4
5
classNames():
name1='Kevin'
name2='Tom'
print'hello {names.name1}  i am {names.name2}'.format(names=Names)# hello Kevin i am Tom
2
3
args=['lu']
kwargs={'name1':'Kevin','name2':'Tom'}
print'hello {name1} {} i am {name2}'.format(*args,**kwargs)# hello Kevin i am Tom ⼆ 格式转换
b、d、o、x分别是⼆进制、⼗进制、⼋进制、⼗六进制。
数字
格式
输出
描述
3.1415926
{:.2f}
3.14
保留⼩数点后两位
3.1415926
{:+.2f}
3.14
带符号保留⼩数点后两位
-1
{:+.2f}
-1
带符号保留⼩数点后两位
2.71828
{:.0f}
3
不带⼩数
1000000
{:,}
1,000,000
以逗号分隔的数字格式
0.25
百分⽐格式
1000000000
{:.2e}
1.00E+09
指数记法
25
{0:b}
11001
转换成⼆进制
25
{0:d}
25
转换成⼗进制
25
{0:o}
31
转换成⼋进制
25
{0:x}
19
转换成⼗六进制
三 对齐与填充
数字
格式
输出
描述
5
{:0>2}
05
数字补零 (填充左边, 宽度为2) 5
{:x<4}
10
{:x^4}
x10x
数字补x (填充右边, 宽度为4)
13
{:10}
13
右对齐 (默认, 宽度为10)
13
{:<10}
13
左对齐 (宽度为10)
13
{:^10}
13
中间对齐 (宽度为10)
四 其他
1.转义{和}符号
1
print'{{ hello {0} }}'.format('Kevin')
跟%中%%转义%⼀样,formate中⽤两个⼤括号来转义2.format作为函数
1
2
f='hello {0} i am {1}'.format
printf('Kevin','Tom')
3.格式化datetime
1
2
w()
print'{:%Y-%m-%d %X}'.format(now)
4.{}内嵌{}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。