print()函数正确名称为print,必须带括号;默认空格分隔参数、末尾换行;sep控制分隔符,end控制行尾字符;file可重定向输出,flush=True强制立即输出。

print() 函数的基本调用方式
Python 的 print() 不是 print_print,也没有叫 print_print 的内置函数——这是常见拼写错误或 IDE 自动补全误导导致的误写。正确函数名永远是 print,后面必须带括号。
最简形式就是直接传入值:print("hello") 或 print(42)。它默认把所有参数用空格分隔、末尾加换行符输出到标准输出(通常是终端)。
- 多个参数会自动用空格连接,比如
print("a", "b", 123)输出a b 123 - 不传任何参数时,
print()只输出一个换行 - 参数可以是任意类型,
print()内部会自动调用str()转换,无需手动转字符串
sep 和 end 参数控制格式
sep 控制多个参数之间的分隔符,默认是空格;end 控制整行输出结束时附加的字符,默认是 "\n"(换行)。这两个是最常被忽略但最实用的参数。
- 想用逗号分隔:
print("a", "b", "c", sep=",")→a,b,c - 想不换行续打:
print("loading", end="..."),接着再print("done")就变成loading...done - 想彻底取消分隔空格:
print("x", "y", sep="")→xy -
end=""后如果紧接着有input()或下一行print(),可能造成光标位置混乱,调试时要注意
file 参数重定向输出目标
file 参数允许你把 print() 的内容写入文件、IO 对象甚至自定义流,而不是屏幕。它接受任何实现了 write() 方法的对象。
立即学习“Python免费学习笔记(深入)”;
- 写入文件:
with open("log.txt", "w") as f: print("error occurred", file=f) - 输出到标准错误流(比
sys.stderr.write()更简洁):print("warning", file=sys.stderr) - 注意:目标文件需以写模式打开,且
print()不会自动 flush,如需实时看到内容,得加flush=True - 如果传入的
file对象不支持write()(比如传了字符串),会抛出AttributeError: 'str' object has no attribute 'write'
flush 参数与缓冲区行为
Python 默认对 stdout 使用行缓冲(遇到换行才真正写出),而文件通常全缓冲。这会导致你调用 print() 后内容没立刻出现在终端或文件里,尤其在循环中做进度提示时特别明显。
- 强制立即输出:
print(".", end="", flush=True) - 和
end=""搭配最常见,否则flush=True在默认换行结尾时效果不明显 - 在 Jupyter 或某些 IDE 的交互窗口中,
flush行为可能被覆盖,表现不一致 - 频繁设
flush=True会轻微降低性能,仅在需要即时反馈的场景启用
真正容易出问题的不是参数记不全,而是混淆 sep 和 end 的作用范围,或者在重定向 file 时忘记处理编码、打开模式或异常关闭。另外,别信任何叫 print_print 的东西——它不存在。











