当前位置: 首页 > news >正文

Python print()函数详讲

Python print() 函数详讲(2025-2026 视角)

print()是 Python 中最常用的输出函数,看似简单,但实际上参数组合非常灵活,掌握它的各种用法能显著提升代码的可读性、调试效率和输出美观度。

1. print() 的基本签名(Python 3.x)

print(*objects,# 要打印的对象(可多个,用逗号分隔)sep=' ',# 对象之间的分隔符,默认空格end='\n',# 结尾字符,默认换行file=None,# 输出到哪里,默认 sys.stdoutflush=False# 是否立即刷新缓冲区)

2. 常用参数详解 + 真实场景

参数默认值作用高频实用场景示例
*objects要打印的内容(可以是任意多个对象,会自动调用 str())print(a, b, c)
sep' '多个对象之间的分隔符print(“姓名”, “年龄”, “城市”, sep="
end'\n'本次 print 结束后追加的字符串(不换行最常用)print(“.”, end=‘’) → 打印进度点不换行
fileNone输出目标(可以是文件对象、StringIO、sys.stderr 等)print(…, file=sys.stderr) → 错误日志
flushFalse是否强制立即刷新缓冲区(True 时不等缓冲区满就输出)长任务实时进度条、日志必须立即看到

3. 经典用法合集(从入门到进阶)

3.1 最基础用法
print("Hello","World")# Hello Worldprint(1,2,3,4)# 1 2 3 4
3.2 控制分隔符(sep)
print("192","168","1","100",sep=".")# 192.168.1.100print("item1","item2","item3",sep=" → ")# item1 → item2 → item3print(*range(1,6),sep=", ")# 1, 2, 3, 4, 5
3.3 不换行输出(end)
# 进度条风格foriinrange(10):print(".",end="",flush=True)# 实时看到点一个一个出现time.sleep(0.3)print()# 最后补个换行
3.4 同时控制 sep 和 end
print("下载中",end=" ")for_inrange(5):print("[■]",end="",sep="")print(" 完成!")
3.5 输出到文件 / 错误流
importsys# 普通输出到文件withopen("log.txt","a",encoding="utf-8")asf:print("警告:温度过高",file=f)# 输出到 stderr(红色高亮,在终端更醒目)print("错误:文件不存在",file=sys.stderr)
3.6 flush 的真实价值(长任务)
# 没有 flush → 可能要等一堆任务结束才一次性看到输出foriinrange(100):print(f"处理{i+1}/100",end="\r",flush=True)time.sleep(0.05)print("\n完成!")

\r+flush=True是最经典的单行覆盖式进度条写法。

4. 格式化输出的几种现代写法对比(print 内部配合)

写法示例代码可读性灵活性推荐场景
老式 %print(“姓名: %s, 年龄: %d” % (name, age))★★☆☆☆★★☆☆☆极老项目
str.format()print(“姓名: {}, 年龄: {:3d}”.format(name, age))★★★☆☆★★★★☆Python 3.0–3.5 时代主流
f-string(首选)print(f"姓名: {name}, 年龄: {age:3d}")★★★★★★★★★★Python 3.6+ 绝对首选
repr / str 手动拼接print(“调试:”, repr(obj))★★★☆☆★★☆☆☆调试复杂对象

强烈推荐写法(2025–2026 主流)

name="张三"age=28score=88.75print(f"{name}今年{age}岁,本次考试{score:.1f}分")# 张三 今年 28 岁,本次考试 88.8 分print(f"{name:>10}|{age:^5}|{score:>6.1f}")# 张三 | 28 | 88.8

5. 调试神技:print + 变量名自动显示(3.8+)

x=42y=[1,2,3]print(f"{x=}")# x=42print(f"{y=}")# y = [1, 2, 3] (注意空格美观)print(f"{x*2+len(y)=}")# x*2 + len(y)=87

6. 常见误区 & 注意事项

  1. print(1, 2, 3, sep=“”)→ 123(没有空格)
  2. print(“a”, end=“”)后不加 flush=True 时,在某些终端/重定向可能延迟显示
  3. print(a, b, c, sep=“, “, end=””)最后不加 print() 会缺少换行
  4. 大量 print() 在生产环境中应换成 logging 模块
  5. Jupyter Notebook 中 print() 默认 end=‘\n’,但大量输出建议用 tqdm 等进度条库

7. 总结:print() 进阶心法

  • 日常开发:f-string + sep/end是最 pythonic 的组合
  • 调试:f"{var=}"+print(…, file=sys.stderr)
  • 进度/实时输出:end=‘\r’ / ‘’ + flush=True
  • 美观对齐:{var:>10} / {:^8} / {:.2f}
  • 生产环境:逐步迁移到 logging 或 rich / textual 等美化库

你平时用 print() 最多的是哪种场景?
调试、进度显示、日志、格式化报表,还是别的?
如果有特别想优化的输出样式,也可以贴出来,我们一起改成更优雅的写法~

http://www.jsqmd.com/news/320952/

相关文章:

  • LLM微调的关键要点:如何打造高效、可靠的AI模型
  • 基于Matlab实现CNN卷积神经网络回归预测算法
  • 2026年美赛B题——翻译及建模思路
  • 软考老金:为什么说他是软考高项的“论文之光”
  • C++流程控制语句:构建结构化程序的核心逻辑
  • 2026年深圳创业园区租赁与活动场地避坑终极指南:专业推荐创业办公、年会选址与影视漫展场地
  • 2026深圳可申请落户创业园区推荐创业团队办公室选址指标+适合培训活动场地精选
  • 好写作AI:从数据到观点——AI在实证研究中的逻辑链条构建
  • 维修点哪家更靠谱?2026年南通苹果售后维修点推荐与排名,解决透明度与保障痛点
  • 大模型教程:去年爆火的大模型综述,如今中国人民大学直接出书了
  • 2026年模切机厂家推荐排行榜:印后/高精度/小型模切机,精选高效耐用品牌助力生产升级
  • Python中的with语句与try语句:资源管理的两种哲学
  • 能见度监测站 10/50km
  • 多模态文档理解视觉token剪枝思路 - 详解
  • 深入理解 Java 虚拟机内存模型
  • 2026年舞台灯光厂家推荐排行榜:文旅演出、剧场剧院、宴会婚礼及防水舞台灯光设备专业选购指南
  • 计算机网络 1.MAC地址,IP地址,ARP协议 2.总线型以太网的特性
  • 2026年美赛F题——翻译及建模思路
  • 路面状况监测系统 路面状况监测站
  • 南京选文档翻译公司,韩语文档翻译性价比高的推荐哪家?
  • 交通气象监测系统高速公路自动气象站
  • 现代嵌入式C++教程——C++一定会使得代码膨胀嘛?
  • 聊聊五恒系统维保,苏州、重庆地区性价比高的服务推荐
  • Idea2025 git和commit窗口合并
  • 五恒系统安装哪家合适 看丹特卫顿如何提供优质服务
  • 手持激光测云仪 便携激光测云仪
  • 2026深圳大型活动场地推荐+深圳创业办公楼出租推荐:哪家口碑好?5大优质电商产业园秘籍
  • 光伏环境监测系统
  • 2026门型展架行业趋势:从标准化到场景化的变革
  • 2026年 搬运机厂家推荐排行榜:真空搬运机/板材搬运机/铝卷真空搬运机等专业设备实力品牌深度解析