Python中格式化字符串输出的方式有哪些
更新时间:2023-11-29Python格式化输出
Python是一种面向对象、解释型语言,允许开发者选择多种方式来输出其结果。字符串格式化输出是表达和展示程序输出的有用方式。Python提供多种字符串格式化方法。其基本功能为使输出值符合指定格式或样式。下面介绍Python的几种格式化字符串的方式及用法。1. 格式化字符串使用百分号( %)
Python中最初的字符串格式化使用百分号(%)作为占位符,指示需要替换成实际值的位置。这种 % 操作符可以在很多不同的值类型中使用,包括字符串、整数、浮点数和元组。以下是一个简单的 % 方法字符串格式化示例:
name = "Tom" age = 16 print("My name is %s and I am %d years old." % (name, age))输出结果:
My name is Tom and I am 16 years old.在这个例子中,我们使用了字符串中的占位符 `%s` 和 `%d`,分别用于替代字符串和数字值。如此,位置和值就对应起来。如果有多个待替换的值,需要将这些值放在括号中,并使用逗号分隔。
2. 使用 format() 方法格式化字符串
Python 2.6 之后添加了一个新的字符串格式化方法,称作字符串的format()方法。可以使用大括号({})代替百分号(%)占位符,更加容易读懂和掌握。以下是 format() 方法字符串格式化示例:
name = "Tom" age = 16 print("My name is {} and I am {} years old.".format(name, age))输出结果:
My name is Tom and I am 16 years old.使用 format() 方法格式化字符串可以非常灵活地控制输出的结果。甚至可以使用数字参数设置要占用的位置并控制对齐。例如,使用 `{0:10}` 将选项放在第一位,并且总共占10个位置。 以下示例展示了如何使用format()方法格式化字符串,使其更加美观。
print("{0:10} | {1:10}".format("Item", "Price")) print("{0:10} | {1:10}".format("-"*10, "-"*10)) print("{0:10} | {1:10.2f}".format("Toy", 12.73)) print("{0:10} | {1:10.2f}".format("Milk", 5.78))输出结果:
Item | Price ---------- | ---------- Toy | 12.73 Milk | 5.78
3. 使用 f-string(格式化字符串字面值)
Python 3.6 之后添加了 f-string(格式化字符串字面值)语法。当使用 f-string 格式化字符串时,可以在 {} 内嵌入任何表达式,并可以访问变量和运行任何表达式的代码。可以高效地编写可读性更高的代码,代码更为简洁,易于理解。以下是 f-string(格式化字符串字面量)字符串格式化示例:
name = "Tom" age = 16 print(f"My name is {name} and I am {age} years old.")输出结果:
My name is Tom and I am 16 years old.f-string(格式化字符串字面量)的优点在于其简化了代码并且具有更高的可读性。相对于其他字符串格式化方式,在需要处理复杂表达式时,在行数上更高效率。
4. 使用 Template 类
Python 还提供了一种使用 Template 类的方式进行字符串格式化。使用该方法需要先读取字符串模板,然后将变量替换为对应的值,如果不需要处理复杂的逻辑,那么该方法的执行效率最高。以下是 Template 类字符串格式化示例:
from string import Template name = "Tom" age = 16 message = Template("My name is $name and I am $age years old.") print(message.substitute(name=name, age=age))输出结果:
My name is Tom and I am 16 years old.与其他方法不同,Template 方法使用了花括号数对的结构,需要使用 $ 符号标记占位符位置,并在执行时将实际值传入。