python中format的用法示例
python中format是一种字符串格式化的方法,它增强了字符串格式化的功能,主要是用来构造字符串,用法如“str.format()”;并且format方法是通过 {} 和 : 来代替旧版本中的 % ,在 {} 符号操作过程中,每一个 {} 都可以设置顺序,分别与format的参数顺序对应,如果没有设置{}下标,默认重0开始递增。
具体用法分析如下:
format 基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
format优点:
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
format基本用法:
"Hello{0}{1}".format("Chen","xin")#引用第一个参数#输出'HelloChenxin'
"{}iscute".format("Chenxin")#引用第一个参数
#输出'Chenxinisgood'
"Mynameis{name}".format(name="Chenxin")#引用名字为name的参数
#输出'MynameisChenxin'
1. 类型转换
!s
!r
"Chenxinisacute{!s}".format("baby")#!s相当于对于参数调用str()#输出'Peppapigisacutebaby'
"Chenxinisacute{!r}".format("baby")#!r相当于对于参数调用repr()
#输出"Peppapigisacute'baby'"
2. 通过位置来填充字符串
print('{0},{1},{2}'.format('a','b','c'))#a,b,cprint('{},{},{}'.format('a','c'))#a,c
print('{2},{0}'.format('a','c'))#c,a
print('{2},{0}'.format(*'abc'))#c,a
print('{0}{1}{0}'.format('aa','bb'))#aabbaa
同一个参数可以填充多次,这个是format比%先进的地方
3. 按名称访问参数
print('name:{last_name}{first_name}'.format(last_name='chen',first_name='xin'))#name:chenxin
name={'last_name':'chen','first_name':'xin'}
print('name:{last_name},{first_name}'.format(**name))
#name:chenxin
4. 通过参数属性访问
classMyList:def__init__(self,x,y):
self.x,self.y=x,y
def__str__(self):
return'MyList({self.x},{self.y})'.format(self=self)
print(str(MyList('小新','www.bohao.com')))
#网站名:小新,地址www.bohao.com
5. 通过参数的items访问
my_list=['小新','www.bohao.com']print("网站名:{0[0]},地址{0[1]}".format(my_list))#"0"是必须的
#网站名:小新,地址www.bohao.com
6. 对齐字符串
"{:>5}".format(1)#设置宽度为5,右对齐"{:>5}".format(10)
"{:>5}".format(100)
"{:>5}".format(1000)
#输出下面的结果
'1'
'10'
'100'
'1000'
print('{:_<30}'.format('leftaligned'))
#'leftaligned__________________'
print('{:_>30}'.format('rightaligned'))
#'__________________rightaligned'
print('{:_^30}'.format('centered'))
#'__________________centered__________________'
^ 居中 后面带宽度,
< 左对齐 后面带宽度,
> 右对齐 后面带宽度,
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
7. 截断字符串
'{:.5}'.format('HelloChen')#截取前5个字符#输出'Hello'
8. 数字格式化
print("{:.2f}".format(3.1415926));#3.14
+ 表示在正数前显示 +,
- 负数
(空格) 表示在正数前加空格
b 二进制
d 十进制
o 八进制
x 十六进制
9. 使用逗号作为千位分隔符
print('{:,}'.format(1234567890))#'1,234,567,890'
10. 表示一个百分比
print('number:{:.2%}'.format(0.61898))#number:61.90%
11. 时间格式化
importdatetimed=datetime.datetime(2018,7,31,15,58,58)
print('{:%Y-%m-%d%H:%M:%S}'.format(d))
#2018-07-3115:58:58
12. 访问元组中的元素
a=(1,2)'X:{0[0]};Y:{0[1]}'.format(a)
#输出'X:1;Y:2'
#注意:用%格式化字符串不支持此功能
13. 访问字典中的元素
people={"name":"Chen","age":18}"Mynameis{p[name]}andmyageis{p[age]}".format(p=people)
#输出'MynameisChenandmyageis18'
#注意:用%格式化字符串不支持此功能
版权声明
本文仅代表作者观点,不代表米安网络立场。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。