位置: 编程技术 - 正文

Python实现字符串格式化的方法小结(python字符串怎么用)

编辑:rootadmin

推荐整理分享Python实现字符串格式化的方法小结(python字符串怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python字符串怎么用,python字符串怎么用,python,字符串,python字符串怎么用,python之字符串基本操作,python之字符串基本操作,python字符串怎么用,python之字符串基本操作,内容如对您有帮助,希望把文章链接给更多的朋友!

Python2.6+ 增加了str.format函数,用来代替原有的'%'操作符。它使用比'%'更加直观、灵活。下面详细介绍一下它的使用方法。

下面是使用'%'的例子:

格式很像C语言的printf是不是?由于'%'是一个操作符,只能在左右两边各放一个参数,因此右边多个值需要用元组或者字典来包括,不能元组字典一起用,缺乏灵活度。

同样的例子用format方法改写:

是不是很直观?(当然,使用C语言的我也很喜欢前一种格式表达方式 :-) )

格式化字符串

注意第一行的'',如果一个语句要换行,必须在结尾加上反斜线转义。

用'%'无法像这样将元组和字典混用。其实这里是命名参数,Python的一个特性。可以在定义数组的时候用*args, **kwargs语法展开集合和字典。需要注意,命名参数放在后面。

第二个语句表示format内置函数用来格式化单个值。

第三个语句表示了{}的转义,因为{}在被格式化字符串里是特殊字符,不能直接显示。转义方式是多嵌套一层。

使用属性和索引

'{0.name}' 相当于调用对象的属性 open('out.txt', 'w').name

使用索引也是可以的。

obj[key] 相当于 obj.____getitem____('key')

标准说明符(Specifiers)

写过C语言的程序员应该清楚printf的复杂。format也定义了很多标准的说明符,用来解释一个值的格式,然后插入字符串内。例如:

':'之后便是说明符了,上面例子中说明符只有一个'8'(minimumwidth),它表示插入的值宽度至少为8。'Fred'只有4,所以又加了4个空格。

Python实现字符串格式化的方法小结(python字符串怎么用)

说明符的详细格式为:

[[fill]align][sign][#][0][minimumwidth][.precision][type](不比C的printf更简洁啊!)

注意:'[]'表示该元素可选。所以,所有的格式说明符都是可选的!就像之前的例子,几乎都没有用这个(只是为了例子更清晰)。实际上,这些是很有用的。

我们一个个来看:1、[fill]align 表示排列方式。当minimumwidth设置的比插入的值大时,就有了留白,就像上一个例子中的'My name is Fred '。默认把留白放在了右边,也就是说插入值默认是左对齐的。如果我们试试{0:>8},会发现结果变成了'My name is Fred'。fill 表示用来填充留白的字符。只有在align指定了的情况下fill才有用! align可以是下面的标识:

< 左对齐,默认 > 右对齐 = 将留白放在align标识后面,只对数字有效。什么意思呢?align下面会讲到,显示数字的正负号,同样只对数字有效。如果指定了'=',那么就会把数字的正负号显示在留白的前面。例如:format(-, "0=8") # => '-'注意这里用的是格式化单个值的内置函数format。'0'是fill元素,用它来填充留白;'='就是该标识了;'8'是指最小宽度为8,因此才有5个留白。那么align呢?align其实就是说明正负号的显示方式,这里使用默认的'-',之后会讲到。 ^ 居中对齐

2、sign 数字符号,只对数字有效。

+ 显示加号和减号 - 不显示加号,显示减号。在不指定最小宽度的情况下负数总是比正数多占一个符号位置。默认 ' ' (一个空格) 用一个留白代替加号

3、# 显示数字的前缀表示几进制(0b, 0o, 0x)

4、0 用'0'填充留白。

5、minimumwidth 指定最小宽度,已经用过很多次了。

6、.precision 'precision'是一个十进制数字,表示显示小数点后几位。

7、type 值的类型:

①整型:

b 二进制 c 字符型,把数字转成表示unicode的字符 d 十进制 o 八进制 x 十六进制,显示小写字母 X 十六进制,显示大写字母 n 与d行为相同,使用本地的数字表示方式 ''(空,没有空格) 与d相同

②浮点数

e 科学计数法表示,小写e E 科学计数法表示,大写E f 显示为定点数,默认小数点后六位 F 同f g 自动选择是否用科学记数法表示 G 同g n 同g,使用本地表示方式 % 使用百分比表示 ''(空) 同g

每个对象可以重写自己的格式化说明符,例如datatime类重写了后可以这样表示:

预先转换

':'之后是格式说明符,之前还可以加预先转换的标识

!r 调用对象的_repr_方法来转换成标准字符串 !s 调用对象的_str_方法来转换成字符串

重写_format_方法

我们在格式化一个字符串时,首先格式化每个值,然后再插入字符串内。格式化值调用的就是format内置方法。format则是简单地调用该值的_format_方法。

在object类内实现了_format方法,只是将本身用str()转换成字符串,然后将字符串传入内置的format方法,实际上就是调用转换为字符串后的format_方法。

int/float/str自身实现了_format_方法,前面已经介绍了它们各自的说明符。

结束语

还有一点儿是自定义Formatter,不过平常也用不到。留作下篇string模块源码解读的内容吧。建议有兴趣的朋友多看看Python标准库的源码,很有学习价值。

标签: python字符串怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/379998.html 转载请保留说明!

上一篇:python爬虫实现教程转换成 PDF 电子书(python爬虫视频教程)

下一篇:python安装cx_Oracle模块常见问题与解决方法(Python安装包)

  • 税控盘这个月没有反写会怎么样
  • 离岸价的含义
  • 退税现金流量表做哪里
  • 注册税务师考试科目
  • 工会经费每月必须60块钱
  • 可以先抵扣下个月的进项票吗
  • 资产处置损益是营业外收入吗
  • 个人所得税减除费用6万元什么意思
  • 固定资产明细账需要每年更换吗
  • 如何查询公司的财务负责人
  • 定额发票上可以盖章吗
  • 拍卖的商铺过户费怎么算
  • 非货物贸易核查项下
  • 材料采购定期结算表
  • 预付办公室装修款
  • 加油充值卡有优惠吗
  • 税控盘服务费跨年还能抵吗
  • 宜宾劳务公司有哪些
  • 增值税税控系统专用设备注销发行
  • 建筑业异地预缴税款怎么抵扣
  • 长期待摊费用当月减少当月摊销吗
  • 汇总转账凭证可以是一借多贷
  • 集体福利是否可以抵税
  • 预缴企业所得税是含税还是不含税
  • 已计提的存货跌价准备确认为净损失吗
  • 9个点的税率有哪些
  • 如何修改mac系统密码
  • 开机进入睡眠模式按哪个键解除
  • 一般纳税人取得普票会计分录
  • 吕宋岛以南坐落着21座极大的岛屿
  • 社保代扣代缴会计分录怎么做
  • 公司报销额度是什么意思
  • 弥补以前年度亏损金额从哪里来的
  • php使用redis缓存技术
  • php操作excel
  • 手写发票可以报税吗
  • 准确率精确率
  • 实发工资知道如何发放吗
  • 基础土建工程是干什么的
  • 应税工资和实发工资区别
  • 公司向法人借款会计分录
  • 全年累计个税扣除公式
  • 主营业务税金及附加和税金及附加的区别
  • 购买金税盘是全额抵扣吗
  • sqlserver触发器在哪个位置
  • 公司土地使用权可以自主转让吗
  • 设计公司成本核算分录
  • 微信账单可以用来干嘛
  • 一般纳税人简易计税方法适用范围
  • 水电费 会计
  • 计提销售费用什么意思
  • 员工社保报销流程
  • 资本化期间专门借款利息费用需将
  • 房地产行业增值税预缴
  • 其他应收款的二级科目
  • 处置长投其他权益变动要转损益吗
  • 小规模购入固定资产怎么做账
  • 进项税转出补缴增值税 城建税及两费
  • 高新企业研发项目规定几个
  • 法院主要业务活动
  • 如何建立明细分类账
  • win10有三个系统
  • win7 32位装ie11
  • 解决Windows Server远程断开后自动
  • macbookpro怎么删除快捷方式
  • Linux系统SCSI磁盘扫描机制解析及命令详细介绍
  • 查找linux
  • windows8如何使用
  • opengl英文
  • python3网络爬虫
  • 使用筷子就餐会不会传染乙肝病毒
  • LocalBroadcastManager原理和机制
  • 欢迎使用本公司智能语音电动车音效
  • 广东国家电子税务全电发票
  • 国家税务局广东省电子税务局下载
  • 税务总局2017年11号公告第二条
  • 云南省地方税务局关于城镇土地使用税
  • 党费减免规定
  • 龙岗税务分局管辖范围
  • 怎么申请企业信用修复
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设