Python print() 函数(一文讲透)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

在 Python 编程的世界中,print() 函数如同程序员手中的画笔,能够将程序的运行结果清晰地呈现在屏幕上。无论你是刚刚接触编程的新手,还是正在提升技能的中级开发者,掌握 print() 函数的使用方法和进阶技巧,都将为你的代码开发之路打下坚实的基础。本文将从基础用法逐步深入,结合实际案例与生动比喻,带读者全面理解这个看似简单却功能强大的工具。


一、基础用法:让文字“说话”

1.1 最简单的打印

print() 函数最基本的功能是输出文本内容。例如:

print("Hello, Python!")  

运行这段代码,屏幕上会显示:

Hello, Python!

这里,“Hello, Python!” 是需要输出的内容,用引号包裹表示这是一个字符串。

1.2 输出多种类型的数据

print() 可以输出字符串、数字、布尔值等数据类型。例如:

print("数字:", 42)          # 输出数字  
print("布尔值:", True)      # 输出布尔值  
print("组合输出:", "答案是", 42)  # 多个参数自动用空格分隔  

输出结果为:

数字: 42  
布尔值: True  
组合输出: 答案是 42  

小贴士:当输出多个参数时,print() 默认会用空格分隔它们。


二、参数详解:掌控输出格式

2.1 sep 参数——自定义分隔符

默认情况下,多个参数的输出结果会用空格分隔。但通过 sep 参数,你可以像“交通灯”一样控制分隔方式。例如:

print("苹果", "香蕉", "橙子", sep=", ")  

输出结果为:

苹果, 香蕉, 橙子  

比喻sep 参数就像交通灯,决定不同“车辆”(输出项)之间的间隔规则。

2.2 end 参数——改变行末符号

默认情况下,print() 会在输出末尾添加换行符 \n,使下一条输出显示在新行。使用 end 参数可以修改这一行为。例如:

print("这行末尾没有换行", end=" → ")  
print("它和下一句连在一起了")  

输出结果为:

这行末尾没有换行 → 它和下一句连在一起了  

小贴士end 参数常用于实时显示进度条或调试信息,避免频繁换行。

2.3 file 参数——输出到文件或对象

默认情况下,print() 的输出会显示在屏幕上。但通过 file 参数,可以将结果写入文件或其他目标。例如:

with open("output.txt", "w") as file:  
    print("Hello, File!", file=file)  

执行后,会在当前目录生成 output.txt 文件,内容为:

Hello, File!

三、格式化输出:让信息更清晰

3.1 使用 + 连接字符串

对于简单的字符串拼接,可以用 + 符号:

name = "Alice"  
age = 30  
print("姓名:" + name + ",年龄:" + str(age))  

但这种方法需要将非字符串类型(如数字)显式转换为字符串,稍显繁琐。

3.2 格式化字符串(f-string)

Python 3.6 引入的 f-string 是更高效的方式。例如:

name = "Bob"  
score = 95.5  
print(f"学生 {name} 的成绩是 {score:.1f} 分")  # .1f 表示保留一位小数  

输出结果为:

学生 Bob 的成绩是 95.5 分  

优势:无需手动转换类型,直接嵌入变量和格式化表达式。

3.3 format() 方法

对于更复杂的格式需求,可以使用 format() 方法:

template = "价格:${:.2f},库存:{}"  
price = 99.999  
stock = 15  
print(template.format(price, stock))  

输出结果为:

价格:$100.00,库存:15  

注意.2f 表示保留两位小数,{} 的顺序需与参数传递顺序一致。


四、实际案例:解决常见问题

4.1 打印多行文本

若需输出包含多行的文本,可以用三引号 '''"""

print("""  
欢迎使用 Python!  
这是第一行,  
这是第二行。  
""")  

输出结果会保留原有的换行和缩进:

欢迎使用 Python!  
这是第一行,  
这是第二行。  

4.2 打印列表或字典

直接打印列表或字典会显示其原始结构,但有时需要更友好的展示方式。例如:

scores = {"Alice": 85, "Bob": 92, "Charlie": 78}  
print("学生成绩:")  
for name, score in scores.items():  
    print(f"  {name}: {score}")  

输出结果为:

学生成绩:  
  Alice: 85  
  Bob: 92  
  Charlie: 78  

4.3 处理特殊字符

若需输出引号、反斜杠等特殊字符,可以用转义符 \

print("她说:\"今天天气真好!\"")  
print("路径:C:\\Users\\Documents")  

输出结果为:

她说:"今天天气真好!"  
路径:C:\Users\Documents  

五、进阶技巧:提升开发效率

5.1 打印调试信息

在调试代码时,print() 可以帮助追踪变量的实时状态:

def calculate(x):  
    print(f"输入值:{x}")  
    result = x * 2  
    print(f"计算结果:{result}")  
    return result  

calculate(5)  

输出结果为:

输入值:5  
计算结果:10  

5.2 批量打印列表元素

结合 join() 方法可以优雅地打印列表内容:

fruits = ["苹果", "香蕉", "橙子"]  
print("水果列表:", ", ".join(fruits))  

输出结果为:

水果列表: 苹果, 香蕉, 橙子  

5.3 日志与分层输出

通过调整 end 参数,可以实现类似日志的输出效果:

print("程序开始运行...", end="\r")  # \r 表示回车,覆盖原行  
import time  
time.sleep(2)  
print("完成!             ")        # 用空格覆盖之前的提示  

运行时会先显示“程序开始运行...”,2 秒后变为“完成!”。


六、常见问题与解决方案

6.1 “TypeError: ... 不可打印”

当你尝试打印不可迭代对象时,会遇到错误。例如:

print(42 + "是答案")  # 错误!数字与字符串无法直接拼接  

解决方法:将数字转换为字符串:

print(str(42) + " 是答案")  

6.2 输出被截断或格式混乱

若输出内容过长或格式复杂,可以分段打印或使用换行符:

long_text = "这是一个很长的句子,需要分两行显示。"  
print(long_text[:20])  
print(long_text[20:])  

或直接使用三引号:

print("""  
这是一个很长的句子,  
需要分两行显示。  
""")  

结论

Python print() 函数 是编程旅程中不可或缺的工具,从基础的文本输出到复杂的格式控制,它都能提供灵活的支持。通过掌握 sepend 等参数,结合格式化字符串和实际案例的实践,开发者可以更高效地调试代码、展示数据,并提升程序的可读性。无论是编写脚本、开发应用,还是解决实际问题,print() 函数都将成为你可靠的伙伴。

延伸思考:随着学习的深入,你可以尝试将 print() 与循环、条件语句结合,甚至探索其在日志记录库(如 logging)中的高级应用。编程之路永无止境,而打好基础是迈向高级的必经之路。

最新发布