10.1 format()
我们经常需要在控制台(屏幕上)输出很多数据。我们并不是第一个遇到这种情况的人——因此 Python 早就出现了 函数 format(),它可以让我们更简单明了地组合字符串并显示数据。
format() 函数用于在字符串的特定位置插入值。其语法如下所示:
"字符串模板从 {} 到 {}".format(值1, 值2,…)
事实1. 函数 format() 是字符串的子函数,所以是在字符串上调用的。我们不需要将字符串传递给函数,而是写出字符串,然后加个点,再调用 format() 函数,把参数传给它。
事实2. 函数 format() 用传入的值填充字符串模板。它将传入的值转换为字符串(如果传入的是数字,例如)并插入到由 {} 标识的位置。这种插入值的位置称为 placeholder。
基础用法:
welcome_message = "你好, {}, 欢迎来到 {}!"
print(welcome_message.format("安娜", "我们的商店"))
结果: "你好, 安娜, 欢迎来到我们的商店!"
数字格式化:
output = "数据: {0:.2f} 和 {1:.2f}".format(3.1415926, 2.71828)
print(output)
结果: "数据: 3.14 和 2.72" — 演示了将输出限制到两位小数。
使用关键字:
output = "{name} 在 {company} 工作"
print(output.format(name="谢尔盖", company="Google"))
结果: "谢尔盖 在 Google 工作"
使用 format() 可以提高代码的可读性和可维护性,允许在不编辑整个字符串的情况下轻松更改格式。
10.2 f-字符串
从 Python 3.6 开始,出现了一种新的字符串类型——f-字符串,意为“格式化字符串”。这些字符串提高了代码的可读性,并且比其他格式化方法更快。
要使用 f-字符串,在字符串前加上字母 "f" 或 "F"。要插入的表达式放在花括号 {} 内:
示例:
force = "黑暗面"
message = f"愿{force}与你同在!"
print(message) # 输出: 愿黑暗面与你同在!
注意! 在花括号中可以指定当前作用域中的变量(稍后详述),并且 Python 会自动将其转换为字符串并插入到相应的位置。
示例:
age = 28
message = f"我今年 {age} 岁"
print(message) # 输出: 我今年 28 岁
而且,在花括号中可以使用 多个变量的表达式。
示例:
birth_year = 1985
current_year = 2024
message = f"我今年 {current_year - birth_year} 岁"
print(message) # 输出: 我今年 39 岁
在底层,这一切都转换为 format() 函数的调用,但新方法确实更方便。
随便用,尽情享受。
10.3 参数 sep 和 end
在 Python 中,函数 print() 提供了两个有用的参数——sep 和 end,它们允许你控制数据输出。这些参数使得 print() 更加灵活,可以在不需要额外函数或复杂字符串操作的情况下格式化输出。
参数 sep 定义了用于分隔多个传递给 print() 的值的符号或字符串。默认情况下,sep 设置为空格。这意味着如果你传递了多个参数给 print(),它们将被空格分隔。
如果你希望数据用其他符号而不是空格分隔,例如逗号,那么你需要在最后添加 参数 sep 并给它分配一个新的分隔字符串。
示例:
print("Hello", "world") # 输出: Hello world
print("Hello", "world", sep=", ") # 输出: Hello, world
或者可以这样做,让每个值从新的一行输出。此时需要为参数 sep 分配一个特殊的换行符——用字符对 “\n” 表示。
| 示例 | 说明 |
|---|---|
|
|
参数 end 定义了在所有传递的值之后要打印的内容。默认值 end 是换行符 (\n),这意味着在完成 print() 后进行换行。
通过更改 end,可以控制如何输出数据,例如,在同一行继续输出:
示例:
print("Hello", end=" ")
print("world") # 输出: Hello world
使用 sep 和 end 在需要特殊输出格式的场景中非常有用,例如,创建表格、报告或在一行中输出数据而不自动换行时。
除了简化代码和消除手动添加分隔符或控制换行以外,使用 sep 和 end 提高了代码的可读性和维护性。
GO TO FULL VERSION