一、基本概念
在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")