Python字符串格式化
一、%占位操作符
格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。
字符串格式化方法:在字符串中需要格式化的地方一律用%s来表示。然后输出的时候在%的左侧放置一个字符串(需要格式化的字符串),右侧放置需要用来格式化字符串的值(可以是一个数字或者一个字符串,也可以是包含多个值的元组或者字典)。
格式化字符串中的%s 部分称为转换说明符,它标记了需要插入转换值的位置。如果要格式化实数(浮点数),可以使用f说明符,同时提供需要的精度:一个句点再加上希望保留的小数位数。
基本形式:%[转换标记][宽度[.精度]]转换类型
常见转换类型:
def format_str():
""" 格式化字符串 """
name = "张三"
print('欢迎您,%s' % name)
# 整型,float类型
num = 12.33
print('您输入的数字是:%.4f' % num)
num2 = 54
print('您的编号是: %04d' % num2)
t = (1,2,3,5)
print('您输入的元组是:%s' % str(t))
print('您的姓名:%(name)s' % {'name':name})
二、使用str.format()进行高级操作
它通过{}和:来代替%。
Demo
In [1]: '{0},{1}'.format('kzc',18)
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18)
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18)
Out[3]: '18,kzc,18'
//字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次
In [5]: '{name},{age}'.format(age=18,name='kzc')
Out[5]: 'kzc,18'
def format_str_2():
# 使用位置
print('欢迎您, {0}, {1},---{0}说'.format('张三', '好久不见'))
# 使用名称
d = {
'username': '李四',
'num': 45
}
print('您好,{username}, 您的编号是{num}'.format(**d))
# 格式化元组
point = (1, 6)
print('坐标位置:{0[0]}:{0[1]}'.format(point))
# 格式化类
user = User('李四', 23)
# print(user.show())
print(user)
三、格式化类
class User(object):
def __init__(self, username, age):
self.username = username
self.age = age
def show(self):
return '用户名:{self.username}, 年龄: {self.age}'.format(self=self)
def __str__(self):
return self.show()
还没有评论,来说两句吧...