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

文章目录

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

字符串格式化

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

msg = "I am %s my hobby is coding" %"nihui";
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只能表示整数

msg = "I am %s my hobby is coding" %"nihui";
msg1 = "I am %s my hobby is %s" % ("nihui","Python")
msg2 = "I am %s my hobby is %s" % ("nihui",1)
msg3 = "I am %s my hobby is %s" % ("nihui",[1,2])msg4 = "I am %s my hobby is %d" % ("nihui",12)print(msg)
print(msg1)
print(msg2)
print(msg3)
print(msg4)

拼接浮点数和百分比

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

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

键值拼接字符串

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

tpl = "I am %(name)s age %(age)d" % {"name":"nihui","age":18}tpl1 = "I am %(pp).2f" % {"pp":123.123534}print(tpl)
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

常用格式化

test = "I am {},age {},{}".format("nihui",23,"test")
print(test)test = "I am {},age {},{}".format(*["nihui",23,"test"])
print(test)## 按照参数位置进行匹配
test = "I am {0},age {2},{1}".format("nihui",23,"test")
print(test)test = "I am {0},age {2},{1}".format(*["nihui",23,"test"])
print(test)#按照制定参数匹配
test = "I am {name},age {age},{test}".format(name="nihui",age=23,test="test")
print(test)## 按照字典的方式进行传递
test = "I am {name},age {age},{test}".format(**{"name":"nihui","age":23,"test":"test"})
print(test)
## 按照列表,最终会拼接成一个元组
test = "I am {1[0]} ,age {0[1]},i like {0[2]}".format([1,2,3],[11,22,33])
print(test)## 按照制定参数类型进行传值
test = "I am {:s} age {:d}, I Like {:f}".format("nihui",23,234.234)
print(test)test = "I am {:s} age {:d}, I Like {:f}".format(*["nihui",23,234.234])
print(test)## 按照键值对的方式进行传递
test = "I am {name:s} age {age:d}, I Like {like:f}".format(name="nihui",age=23,like=234.234)
print(test)## 按照字典的方式进行传递
test = "I am {name:s} age {age:d}, I Like {like:f}".format(**{"name":"nihui","age":23,"like":234.234})
print(test)## 按照制定类型格式化数字number = "number {:b},{:o},{:d},{:x},{:X},{:%}".format(12,23,41,12,123,123,12312,2)
print(number)

总结

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

Python精通-Python字符串格式化操作相关推荐

  1. Python精通-Python学习路线详细介绍

    导语   自从上次说完Python学习路线之后就再也没有更新过关于Python的东西,那么从这篇博客开始将对整个的Python技术栈开启以场全面的旅途,更其他系列一样,博主会不定期的更新关于Pytho ...

  2. Python精通-Python入门基础

    导语   入坑Python系列开始了 文章目录 Python入门程序 Python程序运行方式 Python代码分析 执行一个操作内容 变量 条件语句 基本数据类型 字符串 数字 基本运算 加法 减法 ...

  3. Python精通-Python函数使用

    导语   在编程意义上的函数其实是指完成某种操作的代码块,当然这个是个人的理解,但是这个概念在所有的编程语言中都是通用的.这个代码块用来完成某写特定的操作.但是在数学上的函数却是表示某种对应关系,这两 ...

  4. Python精通-Python集合操作详解

    导语   在前面的分享中说完了基本的数据类型,基本的数据类型有六种分别是数字.字符串.列表.元组.列表.以及布尔值.接下来说的就是在Python中比基本数据类型变量等知识更加深入的数据类型叫做集合 文 ...

  5. Python精通-Python字典操作

    导语   之前的内容中分享了关于数字.字符串.布尔值.列表.元组等数据类型,接下来看一个与之前的数据结构不一样的数据类型.字典,这里的字典与我们使用的字典是不一样的,它有点类似于编程意义上的Map,是 ...

  6. Python精通-Python元组操作

    导语   在介绍元组之前那,先来回顾一个变量赋值问题.对于字符串来说一旦被创建如果需要进行修改的时候就如同下图中展示的一样,需要新开辟空间对新的值进行存储.对于其他语言也是同样适用.   元组作为Py ...

  7. Python精通-Python列表操作

    导语   在之前的关于Python的分享中对于基本数据类型中字符串.布尔值等做了详细的分享.接下来的内容就是在Python中的另一个比较重要的基本数据类型列表,关于列表在之前对于字符串进行切分的时候简 ...

  8. Python精通-Python局部变量与全局变量的区别

    导语   在子程序定义的变量被称为是局部变量,在程序一开始定义的变量被称为是全局变量.全局变量的作用域是整个程序的生命周期,而局部变量的作用域知识在其定义的范围内可以使用.当全局变量与局部变量出现重名 ...

  9. python要点简要-一日精通python

    Python2.x是历史,Python3.x是这门语言的现在和未来.Python2和3大约90%的地方都很相似的. 1.注释 单行注释:在注释的前面输入#号,如下: # 这是一条注释 多行注释:使用三 ...

最新文章

  1. 2021年大数据ELK(二):Elasticsearch简单介绍
  2. 华为交换机配置基本命令
  3. Java_JAVA6动态编译的问题
  4. python基础知识理解
  5. 简单说一下kafka 与其他消息队列
  6. python(1) - 数据类型和变量
  7. c语言微秒级延时,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  8. php 过滤掉多维数组空值
  9. 互联网企业:如何建设数据安全体系?
  10. Direct Rendering RenderMan Point Cloud
  11. VMware Workstation Pro 12 安装黑苹果问题
  12. ArrayList类的基本使用,完成案例随机不重复点名的程序
  13. 专题八图形窗口与坐标轴
  14. LittleVGL开发之显示中文字体以及矢量图标
  15. 注册表右键添加打开选项
  16. freeCodeCamp 练习3 -- Learn accessbility by building a quiz
  17. MMDeteceion之系列一(环境安装、模型测试、训练以及模型后处理工具)
  18. 3D旋转相册炫酷js特效
  19. Epson推AR眼镜:最大亮点就是可接Android手机
  20. 化工企业双重预防体系数字化综合管理系统

热门文章

  1. java cl 規格_Java JavaCL類代碼示例
  2. java format 补足空格_11 个简单的 Java 性能调优技巧
  3. VC++动态链接库DLL编程深入浅出
  4. scikit-learn——快速入门 - daniel-D(转)
  5. Vue路由传参及传参后刷新导致参数消失处理
  6. 高效安全存储之选 佰维A3系列240G固态硬盘试用手记
  7. 很容易学习的JQuery库 : (八) 杂项 noConflict() 方法
  8. document.ready和window.onload的区别
  9. Apache2.4.1编译安装报错解决
  10. 如何找到准确的终端连接端口?(转)