在 Python 中,字符串格式化是一个非常常见的操作。它让我们可以通过模板来创建字符串。其中,%s
,%d
等是在字符串格式化中经常使用的语法,分别表示字符串和整数的占位符。
让我们来详细地讲解一下这个语法:
1. %s 字符串占位符
在 Python 中,%s
被用作字符串的占位符。当你创建一个字符串时,可以使用 %s
来表示你希望在稍后插入一个字符串的地方。然后,你可以使用 %
运算符来指定你希望插入的字符串。
例如:
name = "Alice"
print("Hello, %s" % name)
输出结果将是 Hello, Alice
。
2. %d 整数占位符
与 %s
类似,%d
是用作整数的占位符。这意味着你可以使用 %d
来表示你希望在稍后插入一个整数的地方。例如:
age = 25
print("I am %d years old" % age)
输出结果将是 I am 25 years old
。
3. 多个占位符
如果你希望在同一个字符串中插入多个值,你可以使用括号 ( )
来指定这些值,然后用 ,
来分隔它们。例如:
name = "Alice"
age = 25
print("Hello, my name is %s and I am %d years old" % (name, age))
输出结果将是 Hello, my name is Alice and I am 25 years old
.
注意:%s
和 %d
是字符串格式化的基础,还有更多其他类型的占位符,例如 %f
用于浮点数,%.2f
用于保留两位小数的浮点数等。
尽管 %
格式化方式是有效的,但在 Python 3.6 之后,建议使用新的格式化方式,如 f-string。例如:
name = "Alice"
age = 25
print(f"Hello, my name is {name} and I am {age} years old")
这种方式更简洁,更易读。
在 Python 中,可以使用 %
运算符和特定的格式符号来定义字符串的格式。以下是一些常见的格式符号和它们的含义:
%s
:字符串 (或任何对象,使用str()
转为字符串)%d
:十进制整数%f
:浮点数%.<number of digits>f
:保留特定位数的浮点数%x
:十六进制数,小写%X
:十六进制数,大写%e
:科学计数法,小写 e%E
:科学计数法,大写 E%o
:八进制数%%
:字面意义的百分号
举例来说:
print("I have %d cats" % 2)
print("My name is %s" % "Alice")
print("Pi is approximately %.2f" % 3.14159)
print("That's %X in hexadecimal" % 255)
print("This number in scientific notation: %e" % 1234567)
print("My chances are %%%d" % 100) # 'My chances are %100'
注意:%
的方式虽然可以实现字符串格式化,但在 Python 3.6 以后,官方更推荐使用 f-string(格式化字符串)的方式,例如:
name = "Alice"
age = 25
print(f"Hello, my name is {name} and I am {age} years old")
f-string 方式更加直观、易读。