Python打印值的两种方式及区别详解

Written by

in

文章目录
  • # 第一种传统写法 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因为提前完成了字符串的拼接,性能会稍微好那么一丢丢。但在大多数日常场景下,这点差异根本感觉不出来,除非你要在循环里打印成千上万次。
  • 逗号分隔法的代码看起来更松散,适合打印多个不太相关的变量: print(“姓名:”, name, “年龄:”, age, “分数:”, score) 而f-string让字符串更完整,更容易阅读: print(f”{name}今年{age}岁,考试得了{score}分”) 尤其是需要复杂格式化的时候,f-string的优势就更明显了: # 用f-string格式化数字和多行字符串 print(f””” 学生报告: 姓名:{name:>10} 年龄:{age:>10} 分数:{score:>8.2f} “””)
  • 既然两种方法各有千秋,那什么时候该用谁呢? 用逗号分隔法当: 你只是随便打印调试一下,图个方便 需要打印多个不太相关的变量 还在用Python 3.5或更早版本(f-string是3.6才加入的) 用f-string当: 需要把变量嵌入到长字符串中 需要对输出进行格式化(比如控制小数位数、对齐方式) 希望代码更清晰易读 已经在用Python 3.6+
  • 我在实际项目中发现,打印调试信息时经常需要同时输出变量名和值。这时候可以用个小技巧: # 打印变量名和值(需要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打印的那点事儿就聊到这里。希望这篇文章能帮你理清这两种写法的区别,下次写代码时能更有意识地选择合适的方法! 以上就是Python打印值的两种方式及区别详解的详细内容,更多关于Python打印值方式的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Python打印对象所有属性和值的方法小结 Python 中打印字典中的所有键值对的示例详解 Python自动打印被调用函数变量名及对应值  解决使用python print打印函数返回值多一个None的问题 python递归调用中的坑:打印有值, 返回却None
  • 目录
    • 先看看俩兄弟长啥样
    • 底层干活的方式不一样
    • 性能那点事儿
    • 代码风格与可读性
    • 什么时候用哪种?
    • 实际开发中的小技巧
    • 总结一下

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

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

    # 第一种传统写法
    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因为提前完成了字符串的拼接,性能会稍微好那么一丢丢。但在大多数日常场景下,这点差异根本感觉不出来,除非你要在循环里打印成千上万次。

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

    print("姓名:", name, "年龄:", age, "分数:", score)
    

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

    print(f"{name}今年{age}岁,考试得了{score}分")
    

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

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

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

    用逗号分隔法当

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

    用f-string当

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

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

    # 打印变量名和值(需要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打印的那点事儿就聊到这里。希望这篇文章能帮你理清这两种写法的区别,下次写代码时能更有意识地选择合适的方法!

    以上就是Python打印值的两种方式及区别详解的详细内容,更多关于Python打印值方式的资料请关注风君子博客其它相关文章!

    您可能感兴趣的文章:

    • Python打印对象所有属性和值的方法小结
    • Python 中打印字典中的所有键值对的示例详解
    • Python自动打印被调用函数变量名及对应值 
    • 解决使用python print打印函数返回值多一个None的问题
    • python递归调用中的坑:打印有值, 返回却None

    站内搜索