📜  Python字符串插值(1)

📅  最后修改于: 2023-12-03 15:19:33.103000             🧑  作者: Mango

Python字符串插值

在 Python 中,字符串插值是指在字符串中插入特定的值或表达式。在 Python 2.x 中,字符串插值的主要用法是使用百分号操作符。Python 3.x 及更高版本中推荐使用 f-strings。本文将介绍这两种方法。

百分号操作符

百分号操作符是字符串插值的一种常见方式。使用这种方式,你可以在字符串中指定要插入的值,然后将这些值作为元组传递给字符串本身。

格式控制字符串

百分号操作符使用一种特殊的字符串来定义如何格式化要插入的值,称为格式控制字符串。格式控制字符串中包含一个百分号 %,后面跟着一个或多个格式字符,最后跟着要插入的值。

下表列出了在格式控制字符串中可能使用的格式字符:

| 格式字符 | 描述 | | ------- | --- | | %s | 字符串(采用 str() 的显示) | | %r | 字符串(采用 repr() 的显示) | | %c | 单个字符 | | %b | 二进制整数 | | %d | 十进制整数 | | %i | 十进制整数 | | %o | 八进制整数 | | %x | 十六进制整数(小写字母) | | %X | 十六进制整数(大写字母) | | %e | 科学计数法(小写字母 e) | | %E | 科学计数法(大写字母 E) | | %f | 浮点数 | | %F | 浮点数,与 %f 相同 | | %g | 通用格式的浮点数 | | %G | 通用格式的浮点数 | | %% | 百分号 |

示例

下面是一个使用百分号操作符进行字符串插值的简单示例:

name = 'Alice'
age = 25
print("My name is %s and I'm %d years old." % (name, age))

输出:

My name is Alice and I'm 25 years old.
F-strings

Python 3.6 及更高版本引入了 f-strings,这是一种新的字符串插值方式。使用 f-strings,你可以在字符串中直接包含表达式,而不需要引用外部值。

语法

f-strings 的语法非常简单,只需要在字符串前加上一个 f 或 F。在字符串中包含 {},在 {} 中使用表达式,如下所示:

name = 'Alice'
age = 25
print(f"My name is {name} and I'm {age} years old.")

输出:

My name is Alice and I'm 25 years old.
表达式

在 f-strings 中,你可以包含任何表达式,包括函数调用、算术运算、条件语句等等。下面是一些例子:

# 调用函数
print(f"The square of 5 is {5**2}")

# 条件语句
n = 10
print(f"{n} is an {'even' if n % 2 == 0 else 'odd'} number")

输出:

The square of 5 is 25
10 is an even number
格式化

f-strings 还支持格式化,可以在 {} 中包含格式控制字符串。下面是一个例子:

n = 2.345
print(f"{n:.2f}")

输出:

2.35
结论

Python 中有多种字符串插值方法,其中百分号操作符和 f-strings 是最常见的两种。使用这些技术,你可以方便地格式化字符串,并将变量和表达式插入到字符串中。