
1. 字符串格式化基础字符串格式化是Python中处理文本输出的核心技能。在实际开发中我们经常需要将变量值嵌入到固定文本中这时候就需要用到字符串格式化技术。Python提供了多种字符串格式化方法每种方法都有其适用场景。1.1 百分号(%)格式化这是Python最早的字符串格式化方法语法类似于C语言的printfname 张三 age 25 print(我叫%s今年%d岁。 % (name, age))这种格式化方式简单直接但存在一些局限性类型安全性较差参数顺序容易出错不支持复杂对象格式化1.2 str.format()方法Python 2.6引入的format()方法提供了更强大的格式化能力print(我叫{0}今年{1}岁。.format(name, age))format()方法的优势支持位置参数和关键字参数可以重复使用参数支持对象属性访问提供丰富的格式控制选项2. 现代字符串格式化技术2.1 f-string (Python 3.6)f-string是目前最推荐的字符串格式化方式print(f我叫{name}今年{age}岁。)f-string的特点语法简洁直观执行效率高支持表达式计算类型安全2.2 格式化字符串字面值f-string实际上是格式化字符串字面值的一种形式。Python还支持其他前缀的字符串字面值# 原始字符串 path rC:\Users\name # bytes字符串 data bbinary data3. 常用字符串模块3.1 string模块常量string模块提供了一些有用的字符串常量import string print(string.ascii_letters) # 所有ASCII字母 print(string.digits) # 数字0-9 print(string.punctuation) # 标点符号这些常量在验证输入、生成随机字符串等场景非常有用。3.2 Template字符串string模块中的Template类提供了一种简单的字符串替换机制from string import Template t Template($who likes $what) print(t.substitute(whotim, whatkung pao))Template的特点语法简单($var)安全性较高适合国际化场景4. 字符串格式化高级技巧4.1 数字格式化# 保留两位小数 print(f{3.1415926:.2f}) # 输出: 3.14 # 千分位分隔 print(f{1000000:,}) # 输出: 1,000,000 # 百分比显示 print(f{0.25:.0%}) # 输出: 25%4.2 对齐与填充# 左对齐宽度10用*填充 print(f{hello:*10}) # 输出: hello***** # 居中对齐 print(f{world:^10}) # 输出: world4.3 类型转换value 42 # 不同进制表示 print(f十进制: {value:d}) # 42 print(f十六进制: {value:x}) # 2a print(f八进制: {value:o}) # 52 print(f二进制: {value:b}) # 1010105. 实际应用中的注意事项5.1 性能考虑在性能敏感的场景中字符串拼接方式的选择很重要f-string是性能最好的选择str.format()次之百分号格式化最慢避免在循环中使用拼接字符串5.2 安全性问题当处理用户提供的格式化字符串时要注意避免直接将用户输入作为格式化字符串使用Template可以降低风险考虑使用字符串的replace方法替代格式化5.3 多语言支持处理多语言文本时使用Unicode字符串(u前缀)注意不同语言的排版差异考虑使用gettext等国际化工具6. 常见问题与解决方案6.1 格式化大数字时的可读性large_num 1234567890 print(f{large_num:,}) # 输出: 1,234,567,8906.2 动态确定格式化参数width 10 precision 2 value 3.14159 print(f{value:{width}.{precision}f}) # 输出: 3.146.3 处理None值name None print(f姓名: {name or 未提供}) # 输出: 姓名: 未提供掌握字符串格式化和常用字符串模块是Python开发的基础技能。从简单的变量替换到复杂的格式控制Python提供了多种灵活的方式。在实际开发中应根据具体需求选择最合适的格式化方法同时注意代码的可读性和性能。