Python字符串格式化最佳实践

目录

1.%-formatting

2.str.format()

3.f-Strings

4.Template Strings (标准库)

5.Python字符串格式化的经验法则

格式化字符串:按指定的规则连接字符串或输出其他变量并返回新的字符串

1.%-formatting

name='gyf'
age='22'
s='hello,%S,you are %s' % (name,age)
print(s)

当使用多个参数和更长的字符串,代码会冗长且容易导致错误

2.str.format()

使用str.format(),替换字段用花括号标记

#1
name='gyf'
age=22
s2='hello,{},you are {}'.format(name,age)
print(s2)

#2
#通过索引来以任何顺序引用变量
name='gyf'
age=22
s2='hello,{1},you are {0}'.format(age,name)
print(s2)

小心:ste.format()功能之一是您可以将位置和关键字参数都设置为字符串格式,并且可以随时明确地对项目进行重新排序。但是,更大的功能是可以访问对象的属性和项目。后者是导致此问题的原因。本质上,人们可以做以下事情:

'''前置条件
'''
>>> class user:
	def __init__(self,name,account,password):
		self.name = name
		self.account = account
		self.password = password

		
>>> gyf = user('guoyunfei','2019@qq.com','123456')

'''访问对象内部属性
'''
>>> "{0.name},{0.account},{0.password}".format(gyf)
'guoyunfei,2019@qq.com,123456'

本质上:控制格式字符串的任何人都可以访问对象的潜在内部属性。

3.f-Strings

f-Strings也被称为“格式化字符串文本”,f-strings是字符串文本,在开头有一个f,大括号包含将被其值替换的表达式。表达式在运行时求值,然后使用“格式”协议格式化。

#1
name='gyf'
age=22
s3=f"hello,{name},you are {age}"
print(s3)

#2
#嵌入任意Python表达式
s3=f"your age is {2019-1997}"
print(s3)

4.Template Strings (标准库)

标准库是Python安装时默认自带的库

Template需要从Python的内置string模块导入该类,模板字符串不是核心语言功能,是由string标准库中模块提供。

from string import Template
tp=Template('hello,$name,you are $age') #模板
s4=tp.substitute(name=name,age=age) #替换变量
print(s4)

 

5.Python字符串格式化的经验法则

如果格式字符串是用户提供的,请使用Template strings以避免安全问题。否则,如果您使用的是Python 3.6+ ,请使用f-strings否则请使用str.format()。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值