You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Python当前编程标准下应选用哪种字符串格式化方式?

该选哪种Python字符串格式化方式?

嘿,这个问题太实用了,很多刚学Python的朋友都会遇到这种新旧写法的困惑!咱一步步说清楚:

先聊聊你提到的两种方式

  • 旧式%格式化:就是你书籍里的 print("Guess number %d of %d" % (variable1, variable2)),这是Python最早的格式化方案,优点是和C语言的printf风格类似,老程序员可能眼熟,但缺点真不少:

    • 参数顺序必须严格对应,一旦位置错了结果直接乱套
    • 不支持重复引用同一个变量,比如想两次用同一个值,得重复传参数
    • 类型匹配要求严格,比如%d只能传整数,不小心传字符串就报错
    • 复杂格式化场景下,一堆%符号堆在一起,可读性特别差
  • str.format()方法:也就是线上课程推荐的 print("Guess number {} of {}".format(variable1, variable2)),这是Python 2.6开始引入的改进方案,解决了很多%格式化的痛点:

    • 支持位置索引(比如 "{1} {0}".format(a,b) 可以直接反转输出顺序)
    • 支持关键字参数("{name} is {age}".format(name="Alice", age=25),可读性拉满)
    • 可以重复引用同一个变量,不需要重复传参
    • 大括号和对应内容的关联一目了然,代码整洁度提升很多

当前编程标准下的选择

如果只在你提到的这两种里二选一,毫无疑问优先选str.format(),它是Python官方早年间就明确推荐用来替代%格式化的方案,写法更灵活,可读性更强,完全符合现代Python的编码风格。

不过额外提一句,Python 3.6之后还推出了更强大的f-string(格式化字符串字面量),写法是 print(f"Guess number {variable1} of {variable2}"),它比str.format()更简洁,执行效率也更高,现在已经是Python社区最主流的字符串格式化方式了,如果你的Python版本是3.6+,完全可以直接用这种写法哦!

内容的提问来源于stack exchange,提问作者Felipe Miotto

火山引擎 最新活动