python学习手册——字符串(2)

纸上得来终觉浅,绝知此事要躬行!

目录

字符串格式化表达式

字符串格式化实现:

格式化字符串:

高级字符串格式化表达式:

字符串格式化调用方法


字符串格式化表达式

字符串格式化实现:

1.字符串格式化表达式

这是从python诞生的时候就有的最初的技术,基于C语言的“printf”模型,并且在大多数现有的代码中使用。

2.字符串格式化方法调用

这是Python2.6和Python3.0新增加的技术,Python独有的方法,且和字符串格式化表达式的功能有很大的重叠。

格式化字符串:

1.在%操作符的左侧防止一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都已%开头;

2.在%操作符右侧放置一个(或多个,嵌入到元组中)对象,这些对象将会插入到左侧想让Python进行格式化字符串的一个(或多个)转换目标的位置上去。

In [27]:"%s,月,星,%s" %("日","辰")
Out[27]:'日,月,星,辰'

In [2]:"大吉大利,今晚%s! %d-08"%("吃鸡",2018)
Out[2]:'大吉大利,今晚吃鸡! 2018-08'

高级字符串格式化表达式:

字符串格式化代码
代码意义代码意义代码意义代码意义
s字符串(或任何对象)rs,使用reprc字符d十进制整数
i整数u无号整数o八进制整数x十六进制整数
Xx,大写打印e浮点指数Ee,大写打印f、F浮点十进制
g浮点e或fG浮点E或F%常量%  

事实上,%s可以用于任何对象的格式化表达,因为对象的每个类型都可以转换为字符串(print时使用),每一个与%s一同参与操作的对象类型都可以转换代码。

In [4]:"大吉大利,今晚%s! %s-%s"%("吃鸡",2018,[8,28])
Out[4]:'大吉大利,今晚吃鸡! 2018-[8, 28]'

在格式化字符串中,表达式左侧的转换目标支持多种转换操作,这些操作自有一套严谨语法。转换目标的通用结构看上去是这样的:

%[(name)][flags][width][.precision]typecode

在%和字符码(typecode)之间可以执行的操作:

放置一个字典的键;

罗列出左对齐(-),正负号(+)和补零(0)的标志位;

给出数字的整体长度和小数点后的位数

……

In [9]:"%f,%.3f,%.*f"%(1/3.0,1/3.0,8,1/3.0)
Out[9]:'0.333333,0.333,0.33333333'
# 可以在格式化字符串中用一个*来指定通过计算得出width和precision,迫使它们的值从%运算符右边的输出中
# 的下一项获取,这里元组中的8指定为precision

In[12]:x=1.23456
       "%-6.2f  %05.2f  %+06.1f"%(x,x,x)
Out[12]:'1.23    01.23  +001.2'

In [13]:"%(n)d %(x)s" %{"n":1,"x":"spam"}

Out[13]:'1 spam'

字符串格式化调用方法

Python2.6和3.0及之后版本中的新的字符串对象的format方法使用主体字符串作为模板,并且接受任意多个表示将要根据模板替换的值的参数。在主体字符串中,花括号通过位置或关键字指出替换目标及将要插入的参数。

In[3]:"{name} is {0},now is {1} {time}".format("GuYue",2018,name="My name",time="8-29")
Out[3]:'My name is GuYue,now is 2018 8-29'

就像%表达式和其它字符串方法一样,format创建并返回一个新的字符串对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值