1. 基本语法
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
2. 参数详解
2.1 *objects (可变参数)
- 要打印的对象,可以是多个,用逗号分隔
- 支持任何数据类型(自动调用
str()
转换)
示例:
print("Hello", "World") # Hello World
print(1, 2, 3) # 1 2 3
print("Age:", 25) # Age: 25
2.2 sep (分隔符)
- 指定多个对象之间的分隔符
- 默认值:空格
' '
示例:
print(1, 2, 3, sep=',') # 1,2,3
print('a', 'b', 'c', sep='-') # a-b-c
print(2023, 12, 31, sep='/') # 2023/12/31
2.3 end (结束符)
- 指定打印结束后的字符
- 默认值:换行符
'\n'
示例:
print("Hello", end=' ')
print("World") # Hello World
print("Loading", end='...')
print("Done") # Loading...Done
print("No newline", end='')
print("Continued") # No newlineContinued
2.4 file (输出目标)
- 指定输出流,默认输出到标准输出(sys.stdout)
- 可以重定向到文件或其他流
示例:
# 输出到文件
with open('output.txt', 'w') as f:
print("Hello File", file=f)
# 输出到标准错误
import sys
print("Error message", file=sys.stderr)
2.5 flush (强制刷新)
- 是否强制刷新输出缓冲区
- 默认值:
False
- 设为
True
时立即输出,不缓冲
示例:
import time
print("Loading", end='', flush=True)
for i in range(3):
time.sleep(1)
print(".", end='', flush=True)
# 输出: Loading... (立即显示,每秒一个点)
3. 常用用法示例
3.1 基本打印
print("Hello World") # Hello World
print(100) # 100
print(3.14) # 3.14
3.2 多参数打印
name = "Alice"
age = 25
print("Name:", name, "Age:", age) # Name: Alice Age: 25
3.3 格式化输出
# f-string (Python 3.6+)
name = "Bob"
print(f"Hello, {name}!") # Hello, Bob!
# format() 方法
print("Value: {}".format(42)) # Value: 42
# % 格式化
print("Score: %d" % 95) # Score: 95
3.4 特殊字符处理
print("Line1\nLine2") # 换行
print("Tab\tseparated") # 制表符
print("Backslash: \\") # 反斜杠
print('Quote: "Hello"') # 引号
3.5 列表和字典输出
numbers = [1, 2, 3, 4, 5]
print("Numbers:", numbers) # Numbers: [1, 2, 3, 4, 5]
person = {'name': 'John', 'age': 30}
print("Person:", person) # Person: {'name': 'John', 'age': 30}
4. 高级用法
4.1 重定向输出
from io import StringIO
# 捕获输出到字符串
output = StringIO()
print("Hello World", file=output)
result = output.getvalue() # "Hello World\n"
4.2 条件打印
debug = True
def dprint(*args):
if debug:
print(*args)
dprint("Debug info") # 仅在 debug=True 时打印
4.3 彩色输出
# ANSI 颜色代码
RED = '\033[91m'
GREEN = '\033[92m'
RESET = '\033[0m'
print(f"{RED}Error!{RESET}") # 红色错误信息
print(f"{GREEN}Success!{RESET}") # 绿色成功信息
5. 注意事项
5.1 性能考虑
- 频繁的小量打印可能影响性能
- 大量数据建议先构建字符串再一次性打印
5.2 编码问题
# 处理非ASCII字符
print("中文") # Python 3 默认支持UTF-8
# 指定编码(在需要时)
import sys
sys.stdout.reconfigure(encoding='utf-8')
5.3 与Python 2的区别
- Python 2:
print
是语句,不是函数 - Python 3:
print()
是内置函数
Python 2 语法:
# Python 2 (已过时)
print "Hello World"
print x, y, z
6. 实用技巧
6.1 调试打印
variable = "test"
print(f"[DEBUG] variable = {variable}") # 添加调试标记
6.2 进度指示
import time
for i in range(10):
print(f"\rProgress: {i+1}/10", end='', flush=True)
time.sleep(0.5)
print() # 最后换行
6.3 表格样式输出
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
for name, age in data:
print(f"{name:<10} {age:>3}") # 左对齐姓名,右对齐年龄
💡 提示: Python 3 中的
print()
是一个灵活的函数,熟练掌握其参数可以大大提升输出格式化的效率。