详解Python3 中的字符串格式化语法

1. Python字符串格式化介绍

Python中字符串格式化是很重要的一个概念。它可以在字符串中插入各种类型的参数并转换它们,使得输出格式更加美观、易读、可维护。Python3中提供了多种字符串格式化的方法。在下文中,我们将重点介绍Python3中的字符串格式化语法。

2. Python3中的字符串格式化语法

2.1 占位符格式化

在Python中,我们可以使用占位符格式化字符串,即我们通常所说的字符串插值。Python中常用的占位符有:

%s 字符串占位符

%d 整型占位符

%f 浮点数占位符

%x 十六进制整数占位符

具体用法可以参考下面的代码示例。

# 定义字符串、整型变量、浮点数变量和十六进制整数变量

name = 'Lucy'

age = 18

weight = 55.5

x = 16

# 使用占位符格式化字符串

string = 'My name is %s, I am %d years old, my weight is %.1f kg, my favorite number is 0x%x.' % (name, age, weight, x)

# 输出格式化后的字符串

print(string)

上面的代码输出结果为:

My name is Lucy, I am 18 years old, my weight is 55.5 kg, my favorite number is 0x10.

可以看到,Python使用占位符“%”作为转义字符,然后在占位符后面按照数据类型进行格式化。

2.2 str.format()方法格式化

除了占位符格式化,Python3还提供了str.format()方法格式化字符串。str.format()方法使用一对大括号“{}”作为占位符,可以传入多个参数,具体用法可以参考下面的代码示例:

# 定义多个变量

name = 'Lucy'

age = 18

weight = 55.5

# 使用str.format()方法格式化字符串

string = 'My name is {}, I am {} years old, my weight is {:.1f} kg.'.format(name, age, weight)

# 输出格式化后的字符串

print(string)

上面的代码输出结果为:

My name is Lucy, I am 18 years old, my weight is 55.5 kg.

可以看到,我们直接在字符串中使用一对大括号“{}”作为占位符,然后使用str.format()方法传入变量即可。

2.3 f-strings格式化

在Python3.6中,还新增了一种字符串格式化的语法——f-strings格式化。f-strings格式化可以使用“{ }”来代替以前的占位符“% ”和“ { }”,而且它也支持在大括号内直接写Python代码,相比其他方法更为直观、方便,具体用法如下所示:

# 定义多个变量

name = 'Lucy'

age = 18

weight = 55.5

# 使用f-strings格式化字符串

string = f'My name is {name}, I am {age} years old, my weight is {weight:.1f} kg.'

# 输出格式化后的字符串

print(string)

上面的代码输出结果也为:

My name is Lucy, I am 18 years old, my weight is 55.5 kg.

可以看到,f-strings格式化更加直观直接,使用起来更加方便。

3. Python3字符串格式化语法小结

在Python3中,我们可以使用多种格式化语法对字符串进行格式化。占位符格式化、str.format()方法格式化和f-strings格式化等方法都有它们各自的优缺点。根据实际需求选择相应的格式化语法即可。

值得注意的是,在字符串格式化中,我们常常需要对浮点数进行精度的处理,而Python中可以使用".2f"这样的语法对浮点数进行格式化,其中“.2f”表示保留两位小数,这个在处理数据时非常有用。

除此之外,字符串格式化也可以使用其他的数据类型,如字典类型、列表类型等等。

所有的示例代码如下所示:

# 占位符格式化

name = 'Lucy'

age = 18

weight = 55.5

x = 16

string = 'My name is %s, I am %d years old, my weight is %.1f kg, my favorite number is 0x%x.' % (name, age, weight, x)

print(string)

# str.format()方法格式化

name = 'Lucy'

age = 18

weight = 55.5

string = 'My name is {}, I am {} years old, my weight is {:.1f} kg.'.format(name, age, weight)

print(string)

# f-strings格式化

name = 'Lucy'

age = 18

weight = 55.5

string = f'My name is {name}, I am {age} years old, my weight is {weight:.1f} kg.'

print(string)

以上为Python3中字符串格式化语法的详细介绍,希望能够对大家的学习有所帮助。

后端开发标签