Python 占位符详细笔记
目录
1. %
格式化(旧式格式化)
1.1 基本用法
name = "Alice"
age = 30
formatted_string = "Name: %s, Age: %d" % (name, age)
print(formatted_string) # 输出: Name: Alice, Age: 30
1.2 数字格式化
pi = 3.141592653589793
formatted_string = "Pi: %f" % pi
print(formatted_string) # 输出: Pi: 3.141593
formatted_string = "Pi: %.2f" % pi
print(formatted_string) # 输出: Pi: 3.14
%f
表示浮点数,默认显示六位小数%.2f
表示保留两位小数1.3 填充和对齐
formatted_string = "|%10s|" % "test" # 右对齐,宽度为 10
print(formatted_string) # 输出: | test|
formatted_string = "|%-10s|" % "test" # 左对齐,宽度为 10
print(formatted_string) # 输出: |test |
%10s
表示字段宽度为 10,右对齐%-10s
表示字段宽度为 10,左对齐2. str.format()
方法(较新格式化)
2.1 基本用法
name = "Bob"
age = 25
formatted_string = "Name: {}, Age: {}".format(name, age)
print(formatted_string) # 输出: Name: Bob, Age: 25
2.2 位置和关键字参数
formatted_string = "Name: {0}, Age: {1}".format(name, age)
print(formatted_string) # 输出: Name: Bob, Age: 25
formatted_string = "Name: {name}, Age: {age}".format(name="Carol", age=28)
print(formatted_string) # 输出: Name: Carol, Age: 28
{0}
和 {1}
指定位置参数的索引{name}
和 {age}
使用关键字参数2.3 格式化数字
pi = 3.141592653589793
formatted_string = "Pi: {:.2f}".format(pi)
print(formatted_string) # 输出: Pi: 3.14
2.4 对齐和填充
formatted_string = "|{:10}|".format("test") # 右对齐,宽度为 10
print(formatted_string) # 输出: | test|
formatted_string = "|{:<10}|".format("test") # 左对齐,宽度为 10
print(formatted_string) # 输出: |test |
{:10}
表示字段宽度为 10,右对齐{:10}
默认右对齐,{:<10}
左对齐2.5 字符串长度和精度
text = "Hello"
formatted_string = "{:.3}".format(text) # 截取前三个字符
print(formatted_string) # 输出: Hel
{:.3}
表示截取前三个字符3. f-strings (格式化字符串字面量)
3.1 基本用法
name = "Dave"
age = 40
formatted_string = f"Name: {name}, Age: {age}"
print(formatted_string) # 输出: Name: Dave, Age: 40
3.2 格式化数字
pi = 3.141592653589793
formatted_string = f"Pi: {pi:.2f}"
print(formatted_string) # 输出: Pi: 3.14
3.3 表达式和计算
x = 10
y = 5
formatted_string = f"Sum of {x} and {y} is {x + y}"
print(formatted_string) # 输出: Sum of 10 and 5 is 15
3.4 对齐和填充
formatted_string = f"|{name:>10}|"
print(formatted_string) # 输出: | Dave|
formatted_string = f"|{name:<10}|"
print(formatted_string) # 输出: |Dave |
{:>10}
右对齐,宽度为 10{:10}
默认右对齐,{:<10}
左对齐3.5 嵌套字段
value = 123
formatted_string = f"Value is {value:{10}}"
print(formatted_string) # 输出: Value is 123
value:{10}
表示字段宽度为 104. 字符串模板(string.Template
类)
4.1 基本用法
from string import Template
template = Template("Name: $name, Age: $age")
formatted_string = template.substitute(name="Eva", age=22)
print(formatted_string) # 输出: Name: Eva, Age: 22
4.2 替换占位符
template = Template("Hello, $name! Welcome to $place.")
formatted_string = template.substitute(name="John", place="Python Land")
print(formatted_string) # 输出: Hello, John! Welcome to Python Land.
4.3 字符串中包含 $
符号
template = Template("The price is $$100")
formatted_string = template.substitute()
print(formatted_string) # 输出: The price is $100
$$
用于插入实际的 $
符号4.4 默认值和可选参数
template = Template("Name: $name, Age: ${age}")
formatted_string = template.safe_substitute(name="Julia")
print(formatted_string) # 输出: Name: Julia, Age: ${age}
safe_substitute
用于在缺少值时不抛出异常,使用原始占位符替代5. 选择合适的格式化方式
5.1 %
格式化
5.2 str.format()
5.3 f-strings
5.4 string.Template
总结
在 Python 中,可以根据具体需求选择不同的格式化方法。%
格式化适用于简单的场景,str.format()
提供了更多的灵活性和功能,而 f-strings 是现代 Python 中推荐的格式化方式,因为它简洁且性能优越。string.Template
则适用于需要处理用户输入的情况。
作者:浮生_Lee