news 2026/3/10 22:46:42

Python print()函数详讲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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() 最多的是哪种场景?
调试、进度显示、日志、格式化报表,还是别的?
如果有特别想优化的输出样式,也可以贴出来,我们一起改成更优雅的写法~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 19:15:27

基于Spring Boot和Vue3的无头内容管理系统设计与实现

基于Spring Boot和Vue3的无头内容管理系统设计与实现 基于Spring Boot和Vue3的无头内容管理系统:毕业设计的完美选择 在当今数字化时代,内容管理系统(CMS)已成为网站建设的核心工具。对于计算机科学和软件工程专业的学生来说&am…

作者头像 李华
网站建设 2026/3/9 14:18:00

Java异常处理的艺术:从防御式编程到优雅恢复的进阶之路

在Java开发的世界里,异常就像代码海洋中的暗礁——它们无法完全避免,却能通过精心设计的处理机制化险为夷。根据2024年JetBrains开发者调查,37%的生产故障可归因于异常处理不当,而采用系统化异常策略的团队能将故障恢复时间缩短62…

作者头像 李华
网站建设 2026/3/4 2:18:39

书匠策AI:教育论文的“数据炼金术士”,让分析从“玄学”变“科学”

在教育研究的江湖里,数据曾是让人又爱又恨的“双刃剑”——它既能支撑论点、推动创新,也可能因分析失误让整个研究“翻车”。传统数据分析工具门槛高、操作繁琐,非统计专业的研究者常被卡在“数据清洗”“方法选择”“结果解读”等环节&#…

作者头像 李华
网站建设 2026/3/10 9:55:09

uniapp微信小程序php pythonAndroid流浪动物管理系统

文章目录系统概述核心功能模块技术实现要点应用场景与价值系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 Uniapp微信小程序结合PHP/Python及Android的流浪动物管理系统,旨在…

作者头像 李华
网站建设 2026/3/10 22:08:36

【2026】 LLM 大模型系统学习指南 (36)

语音语言模型发展史:从规则到大模型的跨时代演进 语音语言模型(Speech & Language Model, SLM)的发展史,是一部 “从人工设计到机器自主学习” 的进化史 —— 从早期依赖手工规则的简单系统,到如今能理解语境、生…

作者头像 李华