str.format(*args,**kwargs)

执行字符串格式化操作。

语法:点号前面是一个带槽(由大括号表示)的字符串,字符串里面可以设置各种参数和格式控制标记,后面是format和替换的字符串。

{参数序号:格式控制标记}

如下六个按照顺序使用。

填空

对齐

宽度

逗号

精度

类型

冒号

用于填充的单个字符

<左对齐

>右对齐

^居中

槽的设定输入宽度

数字的千分位分隔符,适用于整数和浮点数

浮点数小数部分精度或字符串最大输出长度

整数类型

b二进制

c整数对应的unicode字符 d 十进制

o八进制

x十六进制小写

X十六进制大写

浮点数类型

e浮点数对应的小写字母e的形式

E浮点数对应的大写字母E的形式

f标准浮点数

%浮点数的百分比形式

例子:

str1 = "{}是一个{}".format('这','苹果')

print(str1)

str1 = "{1}是一个{0}".format('这','苹果')  # 指定位置

print(str1)

person = {"name":'mike',"age":12}

print("{name} is {age} years old!".format(**person))  # 字典拆包

print("{age} is {name} years old!".format(**person))



s0 = "测试测试"

s1 = "$"

s2 = 3

print("{:25}".format(s0))  # 宽度一共25,后面默认填充空格

print("{0:+^25}".format(s0))  # 居中,加号填充

print("{0:*>25}".format(s0))  # 右对齐,星号填充

print("{0:{1}^25}","{0:{1}^25}".format(s0,s1))

print("{1:{1}^25}","{1:{1}^25}".format(s0,s1))

print("{:_^25,}".format(234567890))  # 千分位分隔符

print("{:>25.2f}".format(3.1415926))

print("{:s}".format("1234师打发士大夫撒旦法师的"))

print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(289))

print("{0:e},{0:E},{0:f},{0:%}".format(3.1415))

结果:

这是一个苹果

苹果是一个这

mike is 12 years old!

12 is mike years old!

测试测试

++++++++++测试测试+++++++++++

*********************测试测试

{0:{1}^25} $$$$$$$$$$测试测试$$$$$$$$$$$

{1:{1}^25} $$$$$$$$$$$$$$$$$$$$$$$$$

_______234,567,890_______

3.14

1234师打发士大夫撒旦法师的

100100001,ġ,289,441,121,121

3.141500e+00,3.141500E+00,3.141500,314.150000%

str.format_map(mapping)

类似于str.format(**mapping),不同之处在于mapping会被直接使用而不是复制到一个dict。 此方法常用场景是当mapping为 dict 的子类的情况:

例子:

class Default(dict):

    def __missing__(self, key):

        print(key)

        return key



print('{name} was born in {country}'.format_map(Default(name='Guido')))

print('{name} was born in {country}'.format_map({'name':'Guido','country':'RUSSIA'}))

结果:

country

Guido was born in country

Guido was born in RUSSIA

上面例子中,一共两个key是name和country,第一个是country这个key确实,自动填充为country。