Python中字符串的格式化方法小结

  • Post category:Python

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}是占位符,而nameage则被传递为关键字参数。

使用f-strings的字符串插值方法

Python 3.6引入了一种新的格式化方法,称为f-strings(或格式化字符串文字)。使用f-string可以更轻松地在Python中拼凑字符串。

f-strings可以在字符串字面值前加上fF,然后在需要格式化占位符的位置插入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代码嵌入字符串中。