Python打印值的两种写法,到底有啥不同?

前几天我在帮一个刚学Python的朋友看代码,发现他打印变量都是print("x坐标:", coordinates[0])这样写。我随口说了句"你也可以用f-string啊",结果他反问我:"这两种写法有区别吗?不就是换个写法而已?"

哎,这问题问得真好!表面上都是把值打印出来,但底下确实有些门道。今天我就跟大家说说这两种打印方式。(PS:对于初学者的话)

先看看俩兄弟长啥样

python 复制代码
# 第一种传统写法
coordinates = (666, 888)
print("x坐标:", coordinates[0])
# 第二种f-string写法
print(f"x坐标:{coordinates[0]}")

运行起来,屏幕上都是显示x坐标:666;y坐标:888。看起来结果一模一样,那区别在哪呢?

底层干活的方式不一样

逗号分隔法就像是让两个工人分别干活:一个负责输出字符串"x坐标:",另一个负责输出coordinates[0]的值。print函数接收到多个参数后,会自动用空格把它们连接起来。

而f-string更像是一个小工厂,先在内部把字符串和变量值组装成一个完整的字符串,然后再把这个成品交给print函数去输出。

性能那点事儿

理论上,f-string因为提前完成了字符串的拼接,性能会稍微好那么一丢丢。但在大多数日常场景下,这点差异根本感觉不出来,除非你要在循环里打印成千上万次。

代码风格与可读性

逗号分隔法的代码看起来更松散,适合打印多个不太相关的变量:

python 复制代码
print("姓名:", name, "年龄:", age, "分数:", score)

而f-string让字符串更完整,更容易阅读:

python 复制代码
print(f"{name}今年{age}岁,考试得了{score}分")

尤其是需要复杂格式化的时候,f-string的优势就更明显了:

python 复制代码
# 用f-string格式化数字和多行字符串
print(f"""
学生报告:
姓名:{name:>10}
年龄:{age:>10}
分数:{score:>8.2f}
""")

什么时候用哪种?

既然两种方法各有千秋,那什么时候该用谁呢?

用逗号分隔法当

  • 你只是随便打印调试一下,图个方便
  • 需要打印多个不太相关的变量
  • 还在用Python 3.5或更早版本(f-string是3.6才加入的)

用f-string当

  • 需要把变量嵌入到长字符串中
  • 需要对输出进行格式化(比如控制小数位数、对齐方式)
  • 希望代码更清晰易读
  • 已经在用Python 3.6+

实际开发中的小技巧

我在实际项目中发现,打印调试信息时经常需要同时输出变量名和值。这时候可以用个小技巧:

python 复制代码
# 打印变量名和值(需要Python 3.8+)
print(f"{variable=}")  # 会自动输出"variable=值"

# 对于表达式也一样
print(f"{coordinates[0]=}")  # coordinates[0]=666

这招在调试时特别管用,不用写一堆"变量名:"这样的字符串了。

总结一下

回到最初的问题:print("x坐标:", coordinates[0])print(f"x坐标:{coordinates[0]}")有区别吗?

表面上看没区别,都是把值打印出来。

实际上有区别:f-string更灵活、功能更强、有时候性能稍好,而逗号分隔法写起来更简单随意。

所以我的建议是:如果你是临时打印调试,怎么方便怎么来;如果是正式代码,尤其是需要格式化的场景,尽量用f-string,代码会更清晰易维护。

不过最重要的是:保持项目中的风格一致!别一会儿用这种,一会儿用那种,让看代码的人眼花缭乱。

好了,关于Python打印的那点事儿就聊到这里。希望这篇文章能帮你理清这两种写法的区别,下次写代码时能更有意识地选择合适的方法!

相关推荐
毕设源码-郭学长28 分钟前
【开题答辩全过程】以 基于python电商商城系统为例,包含答辩的问题和答案
开发语言·python
black0moonlight28 分钟前
win11 isaacsim 5.1.0 和lab配置
python
知乎的哥廷根数学学派32 分钟前
基于多尺度注意力机制融合连续小波变换与原型网络的滚动轴承小样本故障诊断方法(Pytorch)
网络·人工智能·pytorch·python·深度学习·算法·机器学习
网安CILLE33 分钟前
PHP四大输出语句
linux·开发语言·python·web安全·网络安全·系统安全·php
jjjddfvv35 分钟前
超级简单启动llamafactory!
windows·python·深度学习·神经网络·微调·audiolm·llamafactory
A先生的AI之旅37 分钟前
2025顶会TimeDRT快速解读
人工智能·pytorch·python·深度学习·机器学习
程序员小远1 小时前
完整的项目测试方案流程
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
程序猿阿伟1 小时前
《量子算法开发实战手册:Python全栈能力的落地指南》
python·算法·量子计算
雪风飞舞1 小时前
python根据音频生成柱状图
开发语言·python·音视频