print() 函数
print() 是 Python 的内置函数,用于将指定的内容输出到控制台(通常是你的终端或命令行窗口)。

基本用法
最简单的用法是直接打印一个字符串(文本)。
# 打印一个简单的字符串
print("你好,世界!")
# 打印一个数字
print(2025)
# 打印一个布尔值
print(True)
输出结果:
你好,世界!
2025
True
打印多个变量
你可以用逗号 来分隔多个想要打印的变量,print() 会自动在它们之间添加一个空格。
name = "Alice" age = 30 city = "北京" print(name, age, city)
输出结果:

Alice 30 北京
控制分隔符
默认情况下,多个项之间用空格分隔,你可以使用 sep 参数来指定自定义的分隔符。
name = "Bob" age = 25 # 使用 '-' 作为分隔符 print(name, age, sep='-') # 使用 ' | ' 作为分隔符 print(name, age, sep=' | ')
输出结果:
Bob-25
Bob | 25
控制结尾符
默认情况下,print() 在打印完所有内容后会换行,这是因为它的 end 参数默认值是 \n(换行符),你可以修改 end 参数来改变结尾的行为。
# 不换行,在结尾添加一个空格
print("Hello", end=' ')
print("World", end='!')
print(" Python")
输出结果:

Hello World! Python
一个常见的应用场景是制作进度条:
import time
for i in range(5):
print(f"Processing... {i+1}/5", end='\r')
time.sleep(1) # 暂停1秒
print("\nDone!") # 循环结束后打印 Done 并换行
格式化输出
这是 print() 最强大的功能之一,它允许你将变量嵌入到字符串中,形成格式化的输出。
f-string (推荐,Python 3.6+)
这是现代 Python 中最推荐、最简洁的方法,在字符串前加上 f 或 F,然后在字符串内部用 包裹变量名。
name = "Charlie"
age = 35
score = 95.5
print(f"姓名: {name}")
print(f"年龄: {age}")
print(f"成绩: {score}")
# 还可以进行简单的格式化,比如保留两位小数
print(f"成绩: {score:.2f}")
# 还可以计算表达式
print(f"两年后,{name} 将 {age + 2} 岁。")
输出结果:
姓名: Charlie
年龄: 35
成绩: 95.5
成绩: 95.50
两年后,Charlie 将 37 岁。
str.format() 方法
这是一种在 f-string 出现之前广泛使用的方法,也非常灵活。
name = "David"
age = 40
# 使用 {} 作为占位符
print("姓名: {}, 年龄: {}".format(name, age))
# 可以指定位置
print("{1} is {0} years old.".format(age, name))
# 也可以使用变量名
print("{n} is {a} years old.".format(n=name, a=age))
输出结果:
姓名: David, 年龄: 40
David is 40 years old.
David is 40 years old.
运算符 (旧式)
这是 Python 早期版本中常用的方法,现在不推荐在新代码中使用,但你可能在一些旧的代码库中看到它。
name = "Eve"
age = 28
# %s 是字符串占位符,%d 是整数占位符
print("姓名: %s, 年龄: %d" % (name, age))
# 浮点数占位符
pi = 3.14159
print("Pi 的值是: %.2f" % pi)
输出结果:
姓名: Eve, 年龄: 28
Pi 的值是: 3.14
其他输出相关技巧
1 不换行打印
如果你只想在同一行上更新输出内容(比如上面提到的进度条),最简单的方法是使用 end=''。
for i in range(10):
print(f"计数: {i}", end=' ')
print() # 在循环结束后打印一个换行符
输出结果:
计数: 0 计数: 1 计数: 2 计数: 3 计数: 4 计数: 5 计数: 6 计数: 7 计数: 8 计数: 9
2 输出到文件
print() 函数有一个 file 参数,默认是 sys.stdout(标准输出,即你的屏幕),你可以将其重定向到一个文件对象,从而将内容写入文件。
# 使用 'w' 模式打开文件(会覆盖原有内容)
with open('output.txt', 'w', encoding='utf-8') as f:
print("这是要写入文件的第一行。", file=f)
print("这是第二行。", file=f)
# 使用 'a' 模式打开文件(追加内容)
with open('output.txt', 'a', encoding='utf-8') as f:
print("这是追加到文件的新一行。", file=f)
执行后,output.txt 文件的内容将是:
这是要写入文件的第一行。
这是第二行。
这是追加到文件的新一行。
3 禁用输出
在某些情况下,你可能想临时关闭输出(在调试时),一个简单的方法是重定向到 os.devnull,这是一个特殊的设备文件,它会丢弃所有写入其中的数据。
import os
# 正常输出
print("这条信息会显示在屏幕上。")
# 临时禁用输出
# 在 Linux/macOS 上是 /dev/null,在 Windows 上是 nul
devnull = open(os.devnull, 'w')
# 将标准输出重定向到 devnull
import sys
original_stdout = sys.stdout
sys.stdout = devnull
print("这条信息不会显示在任何地方。")
# 恢复标准输出
sys.stdout = original_stdout
devnull.close()
print("这条信息会再次显示在屏幕上。")
| 需求 | 推荐方法 | 示例 |
|---|---|---|
| 基本打印 | print() |
print("Hello") |
| 打印多个变量 | print() + 逗号 |
print(a, b, c) |
| 自定义分隔符 | print(..., sep='...') |
print(a, b, sep='-') |
| 不换行打印 | print(..., end='') |
print(".", end='') |
| 格式化字符串 (现代) | f-string | print(f"Value: {var}") |
| 格式化字符串 (旧式) | str.format() |
print("Value: {}".format(var)) |
| 写入文件 | print(..., file=f) |
print("text", file=my_file) |
对于绝大多数情况,print() 配合 f-string 是你进行输出的最佳选择。
