Linux 拨号vps windows公众号手机端

python中format的用法示例

lewis 6年前 (2019-03-30) 阅读数 10 #程序编程
文章标签 formatpython

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,c

print('{},{},{}'.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. 时间格式化

importdatetime

d=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'

#注意:用%格式化字符串不支持此功能

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门