Python精通-Python字符串格式化操作

墨蓝 2023-06-12 11:29 48阅读 0赞

导语
  在之前的分享中提到了关于Python基本的数据类型,并且提到了一个基本数据类型字符串,花费了三篇博客的时间对于字符串的基本操作做了分享。这篇博客主要分享关于字符串格式化的问题,在开发中经常会用到字符串格式化的操作。所以对于字符串的格式化操作无论是对于使用者还是开发人员都是有很多的好处。

文章目录

  • 字符串格式化
    • 常用字符串格式化
      • 百分号方式
        • 常用字符串的拼接
        • 拼接浮点数和百分比
        • 键值拼接字符串
      • Format方式
  • 总结

字符串格式化

  字符串的格式化主要有两种方式,一种是以百分号的形式,一种是使用Format函数,下面就来看看常用的简单字符串拼接。对于字符串的拼接来说它的主要的作用就是定制化的显示数据。

  1. msg = "I am %s my hobby is coding" %"nihui";
  2. print(msg)

常用字符串格式化

百分号方式

%[(name)][flags][width].[precision]typecode

  • (name) 可选,用于选择指定的key
  • flags 可选,可以提供的值有如下

    • + 表示右对齐
    • - 表示左对齐
    • 空格 表示右对齐
    • 0 表示右对齐
  • width 可选表示所占宽度
  • precision 可选,表示小数点后保留的位数
  • typecode 必选

    • s 获取传入对象的__str__方法返回的值。
    • r 获取传入对象__repr__方法返回值
    • c 将整数转换成字符串
    • o 将整数转换成八进制
    • x 将整数转换成十六进制
    • d 数字处理
    • % 在打印百分号的时候使用
    • e 科学计数法
    • f 浮点数操作

常用字符串的拼接

  使用 %s 可以代表任意的的数据。而%d只能表示整数

  1. msg = "I am %s my hobby is coding" %"nihui";
  2. msg1 = "I am %s my hobby is %s" % ("nihui","Python")
  3. msg2 = "I am %s my hobby is %s" % ("nihui",1)
  4. msg3 = "I am %s my hobby is %s" % ("nihui",[1,2])
  5. msg4 = "I am %s my hobby is %d" % ("nihui",12)
  6. print(msg)
  7. print(msg1)
  8. print(msg2)
  9. print(msg3)
  10. print(msg4)

拼接浮点数和百分比

在下面使用的时候需要注意对于浮点书的截取,一个是四舍五入的,一个是直接进行字符截取,但是不推荐使用字符截取。

  1. ## 对于浮点数进行操作
  2. tpl = "percent %.2f %%" % 98.314241
  3. print(tpl)
  4. ## 只是表示字符串的截取
  5. tpl = "percent %.4s" % 99.76444444444
  6. print(tpl)

键值拼接字符串

在一般的操作中为了方便,还可以进行如下的操作。对于字符串进行键值拼接,后面传入的是一个固定的字典

  1. tpl = "I am %(name)s age %(age)d" % { "name":"nihui","age":18}
  2. tpl1 = "I am %(pp).2f" % { "pp":123.123534}
  3. print(tpl)
  4. print(tpl1)

Format方式

[[fill]align][sign][#][0][width][,][.precision][type]

  • fill 可选 空白处填充的字符
  • align 可选对其方式需要配合width使用

    • < 内容左对齐
    • > 内容右对齐,默认
    • = 内容右对齐,将符号放在左侧,只对数字有效
    • ^ 内容居中显示
  • sign 可选参数,有无符号数字

    • + 正号加正,负号加负
    • -
    • 空格 默认
  • # 对于进制的表示
  • , 给数字添加分割符
  • width 格式化所占位数
  • precision 小数保留位置
  • type 格式化类型 主要有以下一些参数

    • 传入字符串

      • s
      • 空白
    • 传入数字参数

      • b 将十进制转换为二进制表示
      • c 将十进制准换为对应的Unicode
      • d 十进制
      • o 将十进制转换为八进制
      • x 将十进制转换为十六进制
      • f 表示浮点数
      • e 表示科学计数法
      • g 表示自动切换e和f

常用格式化

  1. test = "I am {},age {},{}".format("nihui",23,"test")
  2. print(test)
  3. test = "I am {},age {},{}".format(*["nihui",23,"test"])
  4. print(test)
  5. ## 按照参数位置进行匹配
  6. test = "I am {0},age {2},{1}".format("nihui",23,"test")
  7. print(test)
  8. test = "I am {0},age {2},{1}".format(*["nihui",23,"test"])
  9. print(test)
  10. #按照制定参数匹配
  11. test = "I am {name},age {age},{test}".format(name="nihui",age=23,test="test")
  12. print(test)
  13. ## 按照字典的方式进行传递
  14. test = "I am {name},age {age},{test}".format(**{ "name":"nihui","age":23,"test":"test"})
  15. print(test)
  16. ## 按照列表,最终会拼接成一个元组
  17. test = "I am {1[0]} ,age {0[1]},i like {0[2]}".format([1,2,3],[11,22,33])
  18. print(test)
  19. ## 按照制定参数类型进行传值
  20. test = "I am {:s} age {:d}, I Like {:f}".format("nihui",23,234.234)
  21. print(test)
  22. test = "I am {:s} age {:d}, I Like {:f}".format(*["nihui",23,234.234])
  23. print(test)
  24. ## 按照键值对的方式进行传递
  25. test = "I am {name:s} age {age:d}, I Like {like:f}".format(name="nihui",age=23,like=234.234)
  26. print(test)
  27. ## 按照字典的方式进行传递
  28. test = "I am {name:s} age {age:d}, I Like {like:f}".format(**{ "name":"nihui","age":23,"like":234.234})
  29. print(test)
  30. ## 按照制定类型格式化数字
  31. number = "number {:b},{:o},{:d},{:x},{:X},{:%}".format(12,23,41,12,123,123,12312,2)
  32. print(number)

总结

  对于字符串的其他操作格式化的操作可以在使用的时候查询API,或者其实在工作中只要掌握上面这些就足够了。除非你想去搞点其他的事情,这样的场景下就需要掌握的更加深入,这样可以自动的实现某些功能。

发表评论

表情:
评论列表 (有 0 条评论,48人围观)

还没有评论,来说两句吧...

相关阅读

    相关 字符串格式化python

    Python是一种高级编程语言,它的语法简单易懂,非常适合初学者学习。在Python中,字符串是一种非常重要的数据类型,它可以用来存储文本信息。在Python中,字符串可以通过

    相关 Python字符串格式化

    一、%占位操作符 格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tupl

    相关 python格式化字符串

    python有两种方式格式化字符串: 1. %符号 2. format函数 1 % 操作符,是将其他变量置入字符串特定位置以生成新字符串的操作, 格式如下: