1、字符串格式化
1.1、使用format()函数格式化字符串
str.format(args)
args要填充的项,多项用逗号分隔
str 字符串模板,格式为'xxxxxx{ [index][:各种选项+格式化占位符] }xxxxxx'
1) { }里是要替换的内容,所有选项都可以不填,这时按顺序填充args中的项
2){ index }指定每个{}里用args里的哪一项,使用索引,从0开始
3){:s}指定选项时,使用:和索引隔开,即使索引省略
4) { {xxx} } 要在字符串中保留大括号的话,要用双大括号{ {}} ,表示这不是要替换内容
例如:
(1)通过位置来填充字符串
'abc{}'.format('efg')
'abc{1},cde{0}'.format('123','456')
'abc{0:.2f}'.format(2) # .f表示填充浮点数,2表示保留2位小数
'abc{:.2%}'.format(0.1159) # .%表示百分数,2表示保留2位小数
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……
也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
(2)通过key来填充
obj = 'world'
name = 'python'
print('hello, {obj} ,i am {name}'.format(obj = obj,name = name))
# 输入结果:hello, world ,i am python
(3)通过列表填充
list=['world','python']
print('hello {names[0]} i am {names[1]}'.format(names=list))
# 输出结果:hello world i am python
print('hello {0[0]} i am {0[1]}'.format(list))
#输出结果:hello world i am python
(4)通过字典填充
dict={‘obj’:’world’,’name’:’python’}
print(‘hello {names[obj]} i am {names[name]}’.format(names=dict))
# hello world i am python
注意访问字典的key,不用引号的
(5)通过类的属性填充
class Names():
obj='world'
name='python'
print('hello {names.obj} i am {names.name}'.format(names=Names))
#输出结果hello world i am python
(6)通过魔法参数填充
args = [‘,’,’inx’]
kwargs = {‘obj’: ‘world’, ‘name’: ‘python’}
print(‘hello {obj} {} i am {name}’.format(*args, **kwargs))
# 输入结果:hello world , i am python
注意:魔法参数跟你函数中使用的性质是一样的:这里format(*args, **kwargs)) 等价于:
format(‘,’,’inx’,obj = ‘world’,name = ‘python’)
(7) 转义“{}”
print('{ { hello}} { { {0}}}'.format('world')) #输出结果:{hello} {world}
跟%中%%转义%一样,format中用 { 来转义{ ,用 } 来转义 }