首页 > 其他学习 > python > python的str.format()格式化函数
2017
09-29

python的str.format()格式化函数

str.format()增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。

str.format()函数可以接受不限个参数,位置可以不按顺序。

1、不设置指定位置,按默认顺序

"{} {}".format("hello", "world")

'hello world'

2、设置指定位置

"{1} {0} {1}".format("hello", "world")

'world hello world'

3、设置参数

"网站名:{name}, 地址:{url}".format(name="菜鸟教程", url="www.runoob.com")

4、通过字典设置参数

site = {"name": "菜鸟教程", "url": "www.runoob.com"}

"网站名:{name}, 地址 {url}".format(**site)

5、通过列表索引设置参数

my_list = ['菜鸟教程', 'www.runoob.com']

print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))

6、向str.format()传入对象

class AssignValue(object):

def __init__(self, value):

self.value = value

my_value = AssignValue(6)

print('value 为: {0.value}'.format(my_value))

"0" 可以省略,写成{.value}

str.format()格式化数字的多种方法

"{:.2f}".format(3.141592) :保留小数点后两位(3.14)

"{:+.2f}".format(-1) :带符号保留小数点后两位(-1.00)

"{:.0f}".format(2.71828) :不带小数(四舍五入为3)

"{:0>3d}".format(5) :用0填充左边, 宽度为3(005)

"{:x<4d}".format(52) :用x填充右边, 宽度为4(52xx)

: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

"{:,}".format(1000000) :以逗号分隔的数字格式(1,000,000)

"{:.2%}".format(0.234) :百分比格式(%23.40)

"{:.2e}".format(1000000000) :指数记法(1.00e+09)

"{:10d}".format(13) :宽度为10右对齐(默认)显示

"{:<10d}".format(13) :宽度为10左对齐(默认)显示

"{:^10d}".format(13) :宽度为10居中对齐(默认)显示

^, <, > 分别是居中、左对齐、右对齐,后面带宽度

'{:b}'.format(11) :转换为二进制(1011)

'{:d}'.format(11) :转换为十进制(11)

'{:o}'.format(11) :转换为八进制(13)

'{:x}'.format(11) :转换为十六进制(b)

'{:#x}'.format(11) :转换为十六进制(0xb)

'{:#X}'.format(11) :转换为十六进制(0XB)

{:#x}和{:#X}格式在二进制、八进制中也可以使用

可以使用大括号包含大括号 {{}} 来转义大括号,会输出一个大括号

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。