首页 > 编程语言 > 详细

Python中的字符串格式化输出方法对比

时间:2021-04-13 17:03:39      阅读:18      评论:0      收藏:0      [点我收藏+]

C 语言风格

a = 0b1010010
b = ‘value‘

print("Binary: %d %s" % (a, b))

# 对应 C 语言的如下
printf("Binary: %d %s", a, b)
  • 其实就是类似 C 语言的 printf 函数,左边是占位符,右边是数据
  • ??
    • 占位符和右边数据的数据类型必须严格一一对应,每次我们新增都要手动检查,很容易写错
    • 可读性比较差,特别是右边的数据写法比较复杂的时候
    • 如果有相同的数据要输出,你也不得不重复占位重复写
  • 改进
    • %(key)
      • Python 中的 % 格式输出还支持将 dict 作为数据传入,使用方法是在常规的 % 符号后面加 (key),此时就会传入 dict[key]此时右边的数据传入顺序可以是随意的了,添加也会比较方便
      • 而且要是有相同的数据要传入的话,我们只要在 dict 中放一份,比如 print("Binary: %(name1)d %(name1)d" % {‘name1‘: a})
      • ??但是可读性更差了,复杂的输出会更复杂,而简单的输出用 dict 又多此一举
  • ??总结来说,不用这个

str.format

  • {} 来取代之前的 % 格式来作为占位符

  • 类似输出 % 要用 %% 一样,想输出 {} 要用 {{}}

  • {}

    内可以放什么?

    • 索引
      • 就会去后面的数据找对应索引的值
      • print(‘{1} {0}‘.format(a, b)),输出 b a
    • ...
    • ??但是要输出的格式越复杂,{} 里面放的东西也越复杂,可读性差
  • ??只比 C 语言风格好一点点,还是不要用这个

f-strings

  • 在 Python 3.6 中加入的新特性,写法为 f"",注意有个前缀 f
  • 优点??
    • 可以在里面引用所有当前 scope 里的变量,方法是 {variable_name}
    • {} 里面可以放表达式,比如 print(f"{int(3.1415) \* 3}")
    • 在2??中可以放在 {} 的东西也都可以放在这里面
  • ??用它!

Python中的字符串格式化输出方法对比

原文:https://www.cnblogs.com/MartinLwx/p/14652124.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!