python字符串的格式化(转自:田小计划)
来源:互联网 发布:阿里云ip 编辑:程序博客网 时间:2024/05/18 15:28
原文戳这里!!!
格式化操作符(%)
"%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。
下面整理了一下Python中字符串格式化符合:
格式化符号
说明
%c
转换成字符(ASCII 码值,或者长度为一的字符串)
%r
优先用repr()函数进行字符串转换
%s
优先用str()函数进行字符串转换
%d / %i
转成有符号十进制数
%u
转成无符号十进制数
%o
转成无符号八进制数
%x / %X
转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)
%e / %E
转成科学计数法(e / E控制输出e / E)
%f / %F
转成浮点数(小数部分自然截断)
%g / %G
%e和%f / %E和%F 的简写
%%
输出% (格式化字符串里面包括百分号,那么必须使用%%)
这里列出的格式化符合都比较简单,唯一想要强调一下的就是"%s"和"%r"的差别。
看个简单的代码:
string = "Hello\tWill\n"print("%s" %string)print("%r" %string)
代码的输出为:
其实,这里的差异是str()和repr()两个内建函数之间的差异:
- str()得到的字符串是面向用户的,具有较好的可读性
- repr()得到的字符串是面向机器的
- 通常(不是所有)repr()得到的效果是:obj == eval(repr(obj))
格式化操作符辅助符
通过"%"可以进行字符串格式化,但是"%"经常会结合下面的辅助符一起使用。
辅助符号
说明
*
定义宽度或者小数点精度
-
用做左对齐
+
在正数前面显示加号(+)
#
在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X")
0
显示的数字前面填充"0"而不是默认的空格
(var)
映射变量(通常用来处理字段类型的参数)
m.n
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
看一些简单的 例子:
num = 100print("%d to hex is %x" %(num, num))print("%d to hex is %X" %(num, num))print("%d to hex is %#x" %(num, num))print("%d to hex is %#X" %(num, num))# 浮点数f = 3.1415926print("value of f is: %.4f" %f)# 指定宽度和对齐students = [{"name":"Wilber", "age":27}, {"name":"Will", "age":28}, {"name":"June", "age":27}]print("name: %10s, age: %10d" %(students[0]["name"], students[0]["age"]))print("name: %-10s, age: %-10d" %(students[1]["name"], students[1]["age"]))print("name: %*s, age: %0*d" %(10, students[2]["name"], 10, students[2]["age"]))# dict参数for student in students:print("%(name)s is %(age)d years old" %student)
代码输出为:
对于Python的格式化操作符,不仅可以接受tuple类型的参数,也可以支持dict,象上面代码的最后一部分,那么格式化字符串中就可以直接使用"%(key)s"(这里的s根据具体类型改变)的方式表示dict中对应的value了。
字符串模板
其实,在Python中进行字符串的格式化,除了格式化操作符,还可以使用string模块中的字符串模板(Template)对象。下面就主要看看Template对象的substitute()方法:
from string import Templates = Template("Hi, $name! $name is learning $language")print(s.substitute(name="Wilber", language="Python"))d = {"name": "Will", "language": "C#"}print(s.substitute(d))# 用$$表示$符号s = Template("This book ($bname) is 17$$")print(s.substitute(bname="TCP/IP"))
代码结果为:
- python字符串的格式化(转自:田小计划)
- 自己的小计划
- 自己的小计划
- 自己的blog小计划
- 个人的一个小计划
- 我的寒假小计划
- 小计划
- 后缀数组处理字符串的有力工具--近期学习谈不上计划的小计划
- 转载自Python中用format函数格式化字符串的用法
- python之字符串格式化(format)(转自:benric)
- python字符串的格式化
- Python的字符串格式化
- Python的字符串格式化
- 【转】python格式化字符串的方法汇总
- 放假中的小计划
- 暑假小计划
- 国庆小计划
- iOS学习小计划
- 机器学习-近9年双色球开奖数据的频繁项集
- IntelliJ IDEA相关
- centos7配置zookeeper+mesos+marathon+docker
- Eclipse常用快捷键
- JAVA套接字之TCP编程
- python字符串的格式化(转自:田小计划)
- 8--安装kafka_2.10-0.10.2.0集群(三个节点)
- 停车场管理系统
- new Date()和System.currentTimeMillis()性能之比较
- 修改mysql结束符号
- Github常用命令
- JAVA套接字之UDP编程
- 网易编程题--最大的奇约数
- 认识自我