注册 登录

清河洛

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

qingheluo2017-09-29清河洛316
str.format()增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % str.format()函数可以接受不限个参数,位置可以不按顺序1、不设置指定位置,按默认顺序"{} {}".format("hello", "world") # 'hello world' 2、设置指定位置"{1} {0} {1}".format("hello", "world") # 'world hello world' 3、设...

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}格式在二进制、八进制中也可以使用

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



网址导航