什么是 %s?
在 Python 中,%s 是一种使用 百分号(%)操作符进行字符串格式化的占位符。
它可以将任意类型的值转换为字符串并插入到指定位置。
这种方式源自 C 语言的 printf 风格,在早期 Python 版本中广泛使用。
基本语法与示例
基本形式:
"格式化字符串" % (值1, 值2, ...)
简单示例:
name = "Alice"
age = 30
print("你好,%s!你今年 %s 岁。" % (name, age))
# 输出:你好,Alice!你今年 30 岁。
即使传入数字,%s 也会自动转为字符串:
print("数字:%s" % 42) # 输出:数字:42
常用格式化占位符对照表
| 占位符 | 说明 | 示例 |
|---|---|---|
%s |
字符串(任意对象调用 str()) |
"%s" % 123 → "123" |
%d |
十进制整数 | "%d" % 3.9 → "3" |
%f |
浮点数 | "%.2f" % 3.1415 → "3.14" |
%x |
十六进制整数(小写) | "%x" % 255 → "ff" |
与其他格式化方式对比
Python 提供了多种字符串格式化方法,以下是三种主流方式的对比:
# 1. % 操作符(本文主题)
"Hello, %s!" % "World"
# 2. str.format()
"Hello, {}!".format("World")
# 3. f-string(Python 3.6+ 推荐)
name = "World"
f"Hello, {name}!"
虽然 %s 仍在使用,但78TP推荐在新项目中优先使用 f-string,因其更简洁、高效且可读性更强。
注意事项
- 使用
%s时,若参数数量不匹配会抛出TypeError。 - 对于单个参数,可以不加括号:
"Hi, %s" % name。 - 如果字符串本身包含
%字符,需用%%转义。
print("折扣:50%%") # 输出:折扣:50%