python的format方法使用详解

本文介绍Python 2.6及以上版本中新增的str.format()函数,该函数增强了字符串格式化的功能,支持通过{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

从python2.6开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过{}:来代替以前的%

format方法可以接受无限个参数,位置可以不按顺序。

使用示例

不指定format方法的关键字参数

>>> "{} {}".format('hello', 'world') # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

指定format方法的关键字参数

>>> print("Name: {name}, Age: {age}".format(name='bob', age=22))
Name: bob, Age: 22

通过字典设置参数

employee = {'name': 'bob', 'age': 22}
print("Name: {name}, Age: {age}".format(**employee))

输出为:

Name: bob, Age: 22

通过列表索引设置参数

employee = ['bob', 22]
print("Name: {0[0]}, Age: {0[1]}".format(employee))

输出为:

Name: bob, Age: 22

通过对象设置参数

class Employee(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
employee = Employee('bob', '22')
print("Name: {0.name}, Age: {0.age}".format(employee))

输出为:

Name: bob, Age: 22


数字的格式化输出

数字格式输出描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05宽度为2,填充字符为0,填充左边
5{:x<4d}5xxx宽度为4,填充字符为x,填充右边
10{:x<4d}10xx宽度为4,填充字符为x,填充右边
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法
1328723840{:.3e}1.329e+09指数记法
13{:x>10d}xxxxxxxx13右对齐(默认对齐方式)(宽度为10,填充字符为x)
13{:<10d}13左对齐,宽度为10,默认填充字符为空格
13{:x^10d}xxxx13xxxx中间对齐,宽度为10,填充字符为x
255{:f}255.000000转为浮点数,默认保留小数点后6位
255{:b}11111111转为二进制
255{:10o}377转为八进制,宽度为10,填充字符为空格
255{:x}ff转为十六进制
255{:#x}0xff转为十六进制
255{:#X}0XFF转为十六进制
0b11111111{:d}255转为十进制

字符串的格式化输出

熟悉了数字的格式化输出,那么字符串的格式化输出就比较简单了,两者没有太多区别,只需要用s标记替换fdoxb标记即可

>>> name = 'bob'
>>> # 宽度为10,左对齐,填充字符为默认的填充字符空格
>>> "{:<10s}".format(name)
'bob       '
>>> # 宽度为10,右对齐,填充字符为x
>>> "{:x^10s}".format(name)
'xxxxxxxbob'
>>> # 宽度为10,中间对齐,填充字符为x
>>> "{:x^10s}".format(name)
'xxxbobxxxx'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值