python 字符串格式化代码

yipeiwu_com6年前Python基础


格式汇总:

格式描述格式描述
%%百分号%标记(多出来的%是转义作用)  
%c字符及其ASCII码%s字符串
%d有符号整数(十进制)%u无符号整数(十进制)
%o无符号整数(八进制)  
%x无符号整数(十六进制)%X无符号整数(十六进制大写字符)
%e浮点数字(科学计数法)%E浮点数字(科学计数法,用E代替e)
%f浮点数字(用小数点符号)  
%g浮点数字(根据值的不同自动选择%e或%f)%G浮点数字(类似于%g,根据值的不同自动选择%E或%f)
%p指针(用十六进制打印值的内存地址)%n存储输出字符的数量放进参数列表的下一个变量中

不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用'%s‘来标记。
比如:'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])
它的输出为'1 2.3 ['one', 'two', 'three']',就是按照%左边的标记输出的。
虽然第一个和第二值不是string类型,一样没有问题。
[在这个过程中,当电脑发现第一个值不是%s时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。]

上面说的只是格式标记的最简间的形式,来看复杂一点的:
制定输出长度:
‘%6.2f' % 1.235
在这种形式中,在f的前面出现了一个类似小数的6.2它表示的意思是,总共输出的长度为6个字符,其中小数2位。

还有更复杂的:
占位符:
‘%06.2f' % 1.235
在6的前面多了一个0,表示如果输出的位数不足6位就用0补足6位。
这一行的输出为‘001.24',可以看到小数也占用一位。

类似于这里0这样的标记还有-、+。其中,-表示左对齐,+表示在正数前面也标上+号,默认是不加的。

实例:
%ns:如果字符串变量s不足n位的话,会先输出若干个空格后再输出str1
%-ns:与上述相反,先输出变量s,不足的然后用空格在后面补齐。

其他:
字典格式化输出:
‘%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}
这种形式只用在要输出的内容为dictionary时。小括号中的(name)和(score)对应于后面的键值对中的键。

有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,那怎么输入呢,当然不能用%%d.%df或%d.%d%f。
可以用%*.*f的形式,当然在后面的”要输出的值组“中包含那两个*的值。
比如:'%*.*f' % (6, 2, 2.345)就相当于'%6.2f' % 2.345。
不过如果记不住,或不想那么耐烦,完全可以全部用%s代替,或者用多个"+"来构造类似的输出字符串。

相关文章

python正则表达式及使用正则表达式的例子

正则表达式 正则表达用来匹配字符串 正则表达式匹配过程 依次拿出表达式和文本中的字符串进行比价 如果每个字符都能匹配,则匹配成功;一旦有匹配不成功的字符,则匹配失败 如果有...

Python配置文件处理的方法教程

Python配置文件处理的方法教程

前言 在平时的工程中,我们在构建工程时,常常需要用到配置文件,用来配置项目的一些信息,比如数据库,请求网址,文件夹,线程、进程数等信息,这样就可以方便我们通过修改配置文件中的参数来很好地...

简单谈谈python基本数据类型

int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为...

Python黑帽编程 3.4 跨越VLAN详解

Python黑帽编程 3.4 跨越VLAN详解

VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理网络障碍,将不同子网中的用户划...

Python多线程原理与用法详解

Python多线程原理与用法详解

本文实例讲述了Python多线程原理与用法。分享给大家供大家参考,具体如下: 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力...