Python字符串格式化%s%d%f详解


Posted in Python onFebruary 02, 2018

关于讨论输出格式化的问题,小编不是一时兴起,之前学习python的时候就经常遇到输出时“%d”,一直没有仔细学习,今天又看到了,下面分享一个简单实例,python输出99乘法表:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for i in range(1, 10):
  print 
  for j in range(1, i+1):
    print "%d*%d=%d" % (i, j, i*j),

结果:

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
>>>

下面我们就来研究下字符串输出格式化的具体内容。

%s 字符串

string="hello"  
  
#%s打印时结果是hello  
print "string=%s" % string   # output: string=hello  
  
#%2s意思是字符串长度为2,当原字符串的长度超过2时,按原长度打印,所以%2s的打印结果还是hello  
print "string=%2s" % string   # output: string=hello  
  
#%7s意思是字符串长度为7,当原字符串的长度小于7时,在原字符串左侧补空格,  
#所以%7s的打印结果是 hello  
print "string=%7s" % string   # output: string= hello  
  
#%-7s意思是字符串长度为7,当原字符串的长度小于7时,在原字符串右侧补空格,  
#所以%-7s的打印结果是 hello  
print "string=%-7s!" % string   # output: string=hello !  
  
#%.2s意思是截取字符串的前2个字符,所以%.2s的打印结果是he  
print "string=%.2s" % string  # output: string=he  
  
#%.7s意思是截取字符串的前7个字符,当原字符串长度小于7时,即是字符串本身,  
#所以%.7s的打印结果是hello  
print "string=%.7s" % string  # output: string=hello  
  
#%a.bs这种格式是上面两种格式的综合,首先根据小数点后面的数b截取字符串,  
#当截取的字符串长度小于a时,还需要在其左侧补空格  
print "string=%7.2s" % string  # output: string=   he  
print "string=%2.7s" % string  # output: string=hello  
print "string=%10.7s" % string # output: string=   hello  
  
#还可以用%*.*s来表示精度,两个*的值分别在后面小括号的前两位数值指定  
print "string=%*.*s" % (7,2,string)   # output: string=   he

%d 整型

num=14  
  
#%d打印时结果是14  
print "num=%d" % num      # output: num=14  
  
#%1d意思是打印结果为1位整数,当整数的位数超过1位时,按整数原值打印,所以%1d的打印结果还是14  
print "num=%1d" % num      # output: num=14  
  
#%3d意思是打印结果为3位整数,当整数的位数不够3位时,在整数左侧补空格,所以%3d的打印结果是 14  
print "num=%3d" % num      # output: num= 14  
  
#%-3d意思是打印结果为3位整数,当整数的位数不够3位时,在整数右侧补空格,所以%3d的打印结果是14_  
print "num=%-3d" % num     # output: num=14_  
  
#%05d意思是打印结果为5位整数,当整数的位数不够5位时,在整数左侧补0,所以%05d的打印结果是00014  
print "num=%05d" % num     # output: num=00014  
  
#%.3d小数点后面的3意思是打印结果为3位整数,  
#当整数的位数不够3位时,在整数左侧补0,所以%.3d的打印结果是014  
print "num=%.3d" % num     # output: num=014  
  
#%.0003d小数点后面的0003和3一样,都表示3,意思是打印结果为3位整数,  
#当整数的位数不够3位时,在整数左侧补0,所以%.3d的打印结果还是014  
print "num=%.0003d" % num    # output: num=014  
  
#%5.3d是两种补齐方式的综合,当整数的位数不够3时,先在左侧补0,还是不够5位时,再在左侧补空格,  
#规则就是补0优先,最终的长度选数值较大的那个,所以%5.3d的打印结果还是 014  
print "num=%5.3d" % num     # output: num= 014  
  
#%05.3d是两种补齐方式的综合,当整数的位数不够3时,先在左侧补0,还是不够5位时,  
#由于是05,再在左侧补0,最终的长度选数值较大的那个,所以%05.3d的打印结果还是00014  
print "num=%05.3d" % num    # output: num=00014  
  
#还可以用%*.*d来表示精度,两个*的值分别在后面小括号的前两位数值指定  
#如下,不过这种方式04就失去补0的功能,只能补空格,只有小数点后面的3才能补0  
print "num=%*.*d" % (04,3,num) # output: num= 014

%f 浮点型

import math  
  
#%a.bf,a表示浮点数的打印长度,b表示浮点数小数点后面的精度  
  
#只是%f时表示原值,默认是小数点后5位数  
print "PI=%f" % math.pi       # output: PI=3.141593  
  
#只是%9f时,表示打印长度9位数,小数点也占一位,不够左侧补空格  
print "PI=%9f" % math.pi      # output: PI=_3.141593  
  
#只有.没有后面的数字时,表示去掉小数输出整数,03表示不够3位数左侧补0  
print "PI=%03.f" % math.pi     # output: PI=003  
  
#%6.3f表示小数点后面精确到3位,总长度6位数,包括小数点,不够左侧补空格  
print "PI=%6.3f" % math.pi     # output: PI=_3.142  
  
#%-6.3f表示小数点后面精确到3位,总长度6位数,包括小数点,不够右侧补空格  
print "PI=%-6.3f" % math.pi     # output: PI=3.142_  
  
#还可以用%*.*f来表示精度,两个*的值分别在后面小括号的前两位数值指定  
#如下,不过这种方式06就失去补0的功能,只能补空格  
print "PI=%*.*f" % (06,3,math.pi)  # output: PI=_3.142

总结

以上就是本文关于Python字符串格式化%s%d%f详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python黑魔法之编码转换
Jan 25 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python单例模式的两种实现方法
Aug 14 Python
对python中dict和json的区别详解
Dec 18 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
python-numpy-指数分布实例详解
Dec 07 Python
Python如何访问字符串中的值
Feb 09 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
python实现股票历史数据可视化分析案例
Jun 10 Python
python自动化测试之Selenium详解
Mar 13 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 #Python
Python实现Pig Latin小游戏实例代码
Feb 02 #Python
python在线编译器的简单原理及简单实现代码
Feb 02 #Python
使用Python进行AES加密和解密的示例代码
Feb 02 #Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 #Python
Python无损音乐搜索引擎实现代码
Feb 02 #Python
Python面向对象class类属性及子类用法分析
Feb 02 #Python
You might like
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
JS脚本defer的作用示例介绍
2014/01/02 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Vue.js数据绑定之data属性
2017/07/07 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
python中defaultdict的用法详解
2017/06/07 Python
Python中import机制详解
2017/11/14 Python
python binascii 进制转换实例
2019/06/12 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Python持续监听文件变化代码实例
2020/07/22 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
应届硕士毕业生自荐信
2014/05/26 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
MySQL的join buffer原理
2021/04/29 MySQL