5.8 KiB
Python 中的字符串格式——快速概述
原文:https://www.askpython.com/python/string/string-formatting
字符串格式化,顾名思义,指的是 Python 中格式化字符串的多种方式。在本教程中,我们将讨论不同的方法以及如何使用它们。
什么是字符串格式?
假设你正在编写一个程序,打印一个数字的平方。在你的输入中,你从用户那里得到一个整数,在输出中,你告诉用户这个整数的平方是某某。
例如,如果输入是 12,那么您需要打印“12 的平方是 144”。我们不能像这样写一个完整的字符串,因为我们有两个整数要插入到字符串中,所以我们需要一种方法来生成这个字符串。字符串格式化允许我们这样做。
注意:如果我们做print("The square of", input, "is", result),这将打印四种不同的东西,它不会生成格式化的字符串,所以这不算字符串格式化。
字符串格式化技术的类型
今天我们将讨论三种格式化字符串的方法:
- 使用%运算符
- 使用 f 弦
- 使用 format()方法
让我们逐一讨论每种方法。
1。使用%操作符的字符串格式
这是字符串格式化的老方法,对于简单的操作仍然有用。这与 c 语言中的printf语句非常相似。
让我们举一个例子:
num = 12
result = num * num
str = "The square of %d is %d" % (num, result)
print(str)
输出:
The square of 12 is 144
我们有两个整数,num和result。在双引号中,我们写的是要打印的整个字符串,但是我们写的不是整数,而是%d。这将告诉 Python 这里要替换一个整数。
在字符串之后,我们使用%操作符并写入第二个操作数,它是一个元组,包含要以正确顺序替换的整数列表。在上面的例子中,我们有两个整数需要替换,所以我们将这两个整数写入一个元组,并将其作为第二个操作数。
请注意,在我们编写的字符串%d中,%之后的内容被称为格式说明符。在示例中,d是为整数指定的格式,s是为字符串指定的格式,f是为浮点或小数指定的格式,等等。要查看说明符的完整列表,我们可以查看 Python 文档。
使用%格式化字符串的技巧
- 我们可以在
%和格式说明符(例如%5d)之间指定一个数字,Python 会给整数左填充,这样整数的字符总数就等于指定的数字。如果是%5d,则将“123”替换为“123 ”,将 12 替换为“12 ”,以此类推。 - 上面的数字可以在左边指定一个零(例如
%05d),Python 会给这个整数类似的左填充,但不是空格,而是零。例如,在%05d 的情况下,“123”将被替换为“00123”,“12”将被替换为“00012”,等等。 - 上面的数字也可以在左边用“-”号(
%-5d)来指定,Python 不会提供左边的填充,而是在右边提供填充。因此,对于%-5d,将“123”替换为“123”,“12”将替换为“12”,以此类推。
当要构造一个表时,这些点可以派上用场。
2。使用 f 字符串格式化
这是最容易理解的,也是最广泛使用的格式化技术。为了理解它,让我们举个例子。
num = 12
result = num * num
str = f"The square of {num} is {result}"
print(str)
输出:
The square of 12 is 144
正如你所看到的,我们直接将表达式嵌入到字符串中。该字符串还以字母“f”为前缀,这将告诉 python 它是一个 f 字符串,无论在{和}中写入什么表达式,都将被计算并嵌入到字符串的那个位置。
花括号内的表达式不必是单个变量,而是可以是任何返回值的语句。它可以是算术计算、函数调用或条件运算。让我们看一个例子:
a = 1
b = 2
str = f"Expression: {a + b}"
print(str)
输出:
Expression: 3
在上面的例子中,我们在 f 字符串内部执行了一个数学运算。所以我们可以看到 f 弦是强大的选项。
让我们看另一个例子:
a = 1
b = 2
str = f"a is '{a:5}' and b is '{b:05}'"
print(str)
输出:
a is ' 1' and b is '00002'
类似于%操作符,我们也可以如上例所示指定填充。
3。使用.format()方法进行字符串格式化
这种方法非常类似于 f 字符串,让我们用一个例子来看看:
num = 12
result = num * num
str = "The square of {} is {}".format(num, result)
print(str)
输出:
The square of 12 is 144
正如我们所看到的,在字符串内部,我们使用{}指定了两个占位符,然后我们对字符串使用format方法,并传递适当的整数以正确的顺序替换。
我们可以将标识符放在花括号内,但是我们稍后必须发送标识符的值。我们也可以像前面一样指定左填充。举个例子:
a = 1
b = 2
str = "a is '{first}' and b is '{second:03}'".format(first=a, second=b)
print(str)
输出:
a is '1' and b is '002'
在上面的例子中,我们将名字放入占位符中,在 format方法的参数列表中,我们使用名字为每个占位符指定值。与其他技术一样,第二个占位符甚至被指定为左边零填充。
结论
在本教程中,我们学习了字符串格式,并讨论了三种常见的方法。我们首先学习了%操作符,然后我们继续学习 f 字符串和format方法。我们还讨论了如何向格式化字符串添加填充,并通过查看其输出来研究代码。
希望你学得愉快,下次教程再见。