4种字符串格式化

第一种方法:“旧式”字符串格式化

通过%操作符进行位置格式化,如下所示:

>>> number = 20190827
>>> name = 'Lily'

>>> "Hello %s, your number is %x." % (name, number)
'Hello Lily, your number is 134166b.'

还能将别名传给%操作符,按名称替换变量,这样不必确保字符串值得传递顺序与格式化字符串中名称的引用顺序一致。

>>> "Hello %(name)s, your number is %(number)x." % {
... "name":name,
... "number":number}
'Hello Lily, your number is 134166b.'
第二种方法:“新式”字符串格式化

在字符串对象上调用format()函数,执行简单的位置格式化。

>>> "Hello {}, your number is {:x}." .format(name, number)
'Hello Lily, your number is 134166b.'

与第一种方法类似,这种方法也能用别名以任意顺序替换变量。

>>> "Hello {name}, your number is {number:x}." .format(
... name=name,
... number=number)
'Hello Lily, your number is 134166b.'
第三种方法:字符串字面值插值

采用这种方法,可以在字符串常量内使用嵌入的Python表达式。,如下示例还能内联算数运算:

>>> a = 5
>>> b = 10
>>> f'Five plus ten is {a + b} and not {2 * (a + b)}.'
'Five plus ten is 15 and not 30.'

本质上,格式化字符串字面值是Python解析器的功能:将f字符串转换成一系列字符串常量和表达式,然后合并起来构建最终的字符串。
同时,字符串字面值也支持str.format()方法所使用的字符串格式化语法。

>>> f'Hello {name}, your number is {number:#x}.'
'Hello Lily, your number is 0x134166b.'
第四种方法:模板字符串

先看效果:

>>> from string import Template
>>> templ_string = 'Hello $name, your number is $number.'
>>> Template(templ_string).substitute(
... name=name,
... number=hex(number))
'Hello Lily, your number is 0x134166b.'
  • 需要从Python的内置字符串模块中导入Template类
  • 模板字符串不能使用格式说明符,需要手动转换
  • 当用来处理程序用户生成的格式字符串时,这个简单的模板字符串机制比较安全
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值