在 Python 中,字符串格式化操作使用 %
来进行占位符替换。除了 %a
, %d
, %i
等常用的格式符号,还有许多其他格式符号,它们有不同的用途。以下是常用格式符号及其说明:
1. %d
和 %i
- 用途:用于整数格式化,
%d
和%i
功能是一样的,都可以用于格式化十进制整数。 - 示例:
x = 42
print("The number is: %d" % x) # 输出: The number is: 42
print("The number is: %i" % x) # 输出: The number is: 42
2. %o
- 用途:用于整数的八进制表示。
- 示例:
x = 42
print("The number in octal is: %o" % x) # 输出: The number in octal is: 52
3. %x
和 %X
- 用途:用于整数的十六进制表示。
%x
会输出小写字母(a-f)。%X
会输出大写字母(A-F)。
- 示例:
x = 42
print("The number in hexadecimal (lowercase): %x" % x) # 输出: 2a
print("The number in hexadecimal (uppercase): %X" % x) # 输出: 2A
4. %f
和 %F
- 用途:用于浮动点数(浮点数)格式化。
%f
输出默认精度为6位的小数。%F
与%f
相同,通常区别在于%F
会显示小写的 “nan” 和 “inf”。
- 示例:
x = 42.4567
print("The floating point number is: %f" % x) # 输出: The floating point number is: 42.456700
print("The floating point number is: %F" % x) # 输出: The floating point number is: 42.456700
5. %e
和 %E
- 用途:用于科学记数法表示浮动点数。
%e
输出小写 “e”。%E
输出大写 “E”。
- 示例:
x = 123456.789
print("Scientific notation (lowercase): %e" % x) # 输出: 1.234568e+05
print("Scientific notation (uppercase): %E" % x) # 输出: 1.234568E+05
6. %g
和 %G
- 用途:用于根据值的大小选择浮动点数的表示方式,默认会选择科学记数法或者普通浮动点数格式。
%g
会选择%e
或%f
,根据数字的大小自动选择最合适的格式。%G
会选择%E
或%F
,同理。
- 示例:
x = 123456.789
print("General notation (lowercase): %g" % x) # 输出: 123457
x = 0.00000123
print("General notation (lowercase): %g" % x) # 输出: 1.23e-06
7. %s
- 用途:用于格式化字符串。
- 示例:
name = "Alice"
print("Hello, %s!" % name) # 输出: Hello, Alice!
8. %r
- 用途:用于输出对象的“官方”字符串表示,即调用对象的
repr()
方法。常用于调试,能够返回更详细的对象描述。 - 示例:
name = "Alice"
print("Name is: %r" % name) # 输出: Name is: 'Alice'
9. %a
- 用途:用于返回对象的“官方”字符串表示,但不同于
%r
,%a
会返回一个能够被eval()
解析的字符串,主要用于在代码中显示可以再次求值的字符串。 - 示例:
name = "Alice"
print("Name is: %a" % name) # 输出: Name is: 'Alice'
10. %%
- 用途:用于插入百分号字符
%
本身。由于%
是格式化操作符,如果想要在字符串中显示一个%
符号,需要用%%
。 - 示例:
print("Discount: 50%% off") # 输出: Discount: 50% off
11. %c
- 用途:用于格式化字符(Unicode 字符),它会将整数或字符转换为单个字符。
- 示例:
char = 65 # 对应字符 'A'
print("The character is: %c" % char) # 输出: The character is: A
总结
%d
和%i
用于整数。%o
用于八进制整数。%x
和%X
用于十六进制整数,分别为小写和大写。%f
和%F
用于浮动点数,默认精度为6位。%e
和%E
用于科学记数法表示浮动点数。%g
和%G
用于根据数值选择最合适的浮动点数表示。%s
用于格式化字符串。%r
用于调用对象的repr()
方法。%a
用于返回能被eval()
解析的字符串。%%
用于输出一个百分号%
。%c
用于格式化单个字符。
这些格式符号为我们提供了不同类型数据的格式化功能,帮助我们更好地控制输出的显示。