您的位置:

Python .format实现字符串格式化

一、基本概念

在Python中,字符串格式化是最常用的技术之一,有时候我们需要把一个或多个变量插入到字符串中,一种简单的方式是使用“+”符号,但是当变量数量很多时,这就变得很笨拙了,而.format()方法可以大大简化这个过程。

使用.format()的格式为"string{}".format(variable),其中大括号内可以使用数字来指代要插入的变量的顺序,也可以把数字省略掉,直接使用大括号,这种方法的优点是可以更加灵活地控制字符串格式。

#示例1 基本使用方式
name = "alan"
print("Hello {}!".format(name))

运行结果如下:

Hello alan!

如上所示,大括号内为变量,在.format()方法内被解析成name变量中的值,自动替换了大括号部分。

二、格式化字符串

对于更加复杂的格式,我们可以通过.format()方法的参数来进一步控制字符串的格式,下面是一些常见的格式化方法:

1.指定数字位数

通过在大括号内添加数字和“:”符号,可以指定数字的位数和对齐方式。

# 示例2 指定位数和对齐方式
var1 = 3.1415926
var2 = 100

print("pi is approximately {:.3f}".format(var1))
print("{:<10} is a number".format(var2))

运行结果如下所示:

pi is approximately 3.142
100        is a number

在大括号内,"{:.3f}"代表输出一个保留三位小数的浮点数,{:<10}代表输出一个长度为10的左对齐的字符串。

2.使用元组进行字符串格式化

在一组数据中,如果需要给每个元素都编写相同的格式代码,可以将这些元素放在一个元组中,这个应用场景比较适合于生成html模板中的表格,其中表头和每行数据的格式是相同的。

# 示例 3 使用元组进行字符串格式化
width = 10
precision = 4
value = 3.141  #value可以是任意数据类型(字符串,整型等)

print("{:{w}.{p}} =".format(value, w=width, p=precision), value)

运行结果如下:

    3.141 = 3.141

在大括号中的{w}.{p},w和p都是参数,"w=10, p=4"说明w和p是10和4。保留小数的数字的格式为".{}f"其中{}内表示几位数字。

3.使用字典进行字符串格式化

可以使用字典将字符串格式化与关键字参数结合起来,这种方式适用于那些具有特定名称的参数值。

# 示例 4 使用字典进行字符串格式化 
person = {'name': 'Elon Musk', 'age': 49}

print("Name: {name}, Age: {age}".format(**person))

运行结果如下:

Name: Elon Musk, Age: 49

在大括号中的"{name},{age}"会被对应的键的值所替换,format()方法中的“*”号将person字典作为关键字参数传递,使得该方法可以正常解析这个字典。

4.转义大括号

如果要输出一个大括号字符本身,而不是它的格式代码,在.format()方法中使用双大括号就可以了。

# 示例 5 转义大括号
print("{{}} represents the curly bracket")

运行结果如下:

{ } represents the curly bracket

三、结语

这篇文章主要介绍了Python的.format()方法实现字符串格式化的基本概念和常用方法,包括指定数字位数、使用元组进行字符串格式化、使用字典进行字符串格式化和转义大括号等。.format方法可以实现更加灵活的字符串格式化,帮助我们在实际编程中更加方便地控制输出的格式。

#完整代码示例
#示例1
name = "alan"
print("Hello {}!".format(name))

#示例2
var1 = 3.1415926
var2 = 100

print("pi is approximately {:.3f}".format(var1))
print("{:<10} is a number".format(var2))

#示例3
width = 10
precision = 4
value = 3.141  #value可以是任意数据类型(字符串,整型等)

print("{:{w}.{p}} =".format(value, w=width, p=precision), value)

#示例4
person = {'name': 'Elon Musk', 'age': 49}

print("Name: {name}, Age: {age}".format(**person))

#示例5
print("{{}} represents the curly bracket")