26pythonsprintf风格的字符串

Posted awildfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了26pythonsprintf风格的字符串相关的知识,希望对你有一定的参考价值。

参考资料:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting

 实例

s#!/bin/python

a = ("year:%d model:%s") % (2018, BMW X5)
print(a) #year:2018 model:BMW X5

可以看到用这种类似于c语言中的printf函数,实现了字符串拼接,这个在实际应用中很常见,比如打日志,比如输出一段完整的内容,其中包含一些变量。

按照%出现的顺序,依次和后面的参数对应起来,来实现字符串拼接。

 

以下是一些提示

提示1:

前面出现的%必须和后边的参数个数保持一致,否则会报错:TypeError: not all arguments converted during string formatting

 

提示2:

这里如果输出%本身,需要用%来转义。

a = ("%% year:%d model:%s") % (2018, BMW X5)

 

提示3:

支持的所有类型见表格:

表示 含义 备注
%d 整型  
%i 整型  
%u 整型 和%d一样
%f 浮点数  
%F 浮点数  
%e 指数形式的整型  
%E 指数形式的整型  
%g 浮点数表示,精度太低,需要指数介入时会用到,e是小写的  
%G 浮点数表示,精度太低,需要指数介入时会用到,e是大写的  
%x 十六进制表示  
%X 十六进制表示  
 %c char类型  必须是单个字符,否则报错 
%o 八进制 这里是字母o
%r 使用函数repr()来转化后的string  
%s string类型,使用str()转换后的值  
%a string,使用ascii(0函数转换后的值  

以上是所有常用的类型。

 

对于%d,支持类似于%3d(3位整型),‘% 8d‘,‘%08d‘这样的表示。

类似的%f,也是一样的,支持%8.5f。

其它格式见链接:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting

以上是关于26pythonsprintf风格的字符串的主要内容,如果未能解决你的问题,请参考以下文章

26个jQuery代码片段使用技巧

26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段

std::sort 对 c 风格的字符串进行排序,而不复制字符串 [重复]

OAuth2:查询字符串与片段

Python代码阅读(第26篇):将列表映射成字典

如何重构这个 Java 代码片段