Python中字符串的格式化方法小结
简介
在Python中,字符串格式化可以用作输出、日志记录、数据存储和许多其他应用程序。Python提供了多种字符串格式化方法,包括官方文档中介绍的使用百分号的旧格式化方法,使用.format()方法的新格式化方法,以及使用更先进功能(例如Lambda表达式等)的字符串插值。
本文将介绍Python中的字符串格式化方法。
使用百分号的旧格式化方法
使用百分号的旧字符串格式化方法是Python中的最早格式化方法之一。
在这种方法中,需要将 %
作为占位符插入要替换的变量或值。占位符可以是单个字符(%d
),用于数字,也可以是多个字符(%s
),用于字符串。
例如:
name = "Alice"
age = 20
print("My name is %s, and I am %d years old." % (name, age))
输出为:
My name is Alice, and I am 20 years old.
在此示例中,%s
和 %d
是占位符,分别代表字符串和整数。这些占位符的值必须按照它们在字符串中出现的顺序传递。这个例子中,第一个占位符 %s
对应于 name
,而第二个占位符 %d
对应于 age
。
使用.format()方法的新格式化方法
Python 2.6及更高版本引入了新的字符串格式化方法,使用{ }
作为占位符,而不是使用原来的 %
。对应于项目的值可以放在大括号里。传递给 .format()
方法的参数可以按照位置顺序定义,也可以使用关键字参数。
例如:
name = "Alice"
age = 20
print("My name is {0}, and I am {1} years old.".format(name, age))
输出为:
My name is Alice, and I am 20 years old.
在这个例子中,{0}
和{1}
是占位符,分别代表位置参数的第一个和第二个值。这些值按照它们在format()
方法中出现的顺序传递。
我们也可以使用关键字参数:
name = "Alice"
age = 20
print("My name is {n}, and I am {a} years old.".format(n=name, a=age))
输出为:
My name is Alice, and I am 20 years old.
在这个例子中,{n}
和{a}
是占位符,而name
和age
则被传递为关键字参数。
使用f-strings的字符串插值方法
Python 3.6引入了一种新的格式化方法,称为f-strings(或格式化字符串文字)。使用f-string可以更轻松地在Python中拼凑字符串。
f-strings可以在字符串字面值前加上f
或F
,然后在需要格式化占位符的位置插入Python代码。
例如:
name = "Alice"
age = 20
print(f"My name is {name}, and I am {age} years old.")
输出为:
My name is Alice, and I am 20 years old.
在这个例子中,{name}
和{age}
是占位符,而不需要用括号注明它们是Python变量。整个字符串被放在f
的后缀中,用花括号包围的Python表达式可以包含函数调用、操作符和任何Python代码。
小结
在Python中有三种方法用于字符串格式化。使用旧字符串格式化方法需要在字符串中指定占位符,并在输出时提供要替换的值。新的字符串格式化方法不再需要占位符,而是使用大括号来代替。f-strings更加方便,因为它不需要提供额外的占位符或格式化标识符,而是将Python代码嵌入字符串中。