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()       
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值