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.domain.com")
4、通过字典设置参数
site = {"name": "名字", "url": "www.domain.com"}
"网站名:{name}, 地址 {url}".format(**site)
5、通过列表索引设置参数
my_list = ['名字', 'www.domain.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)
"{:x^4d}".format(13) :用x填充两侧,宽度为4(x13x)
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充,^, <, > 分别是居中、左对齐、右对齐,后面带宽度
"{:,}".format(1000000) :以逗号分隔的数字格式(1,000,000)
"{:.2%}".format(0.234) :百分比格式(%23.40)
"{:.2e}".format(1000000000) :指数记法(1.00e+09)
'{: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}格式在二进制、八进制中也可以使用
可以使用大括号包含大括号 {{}} 来转义大括号,会输出一个大括号