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之不要红头文件(2)
Sep 28 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
Python装饰器用法实例总结
Feb 07 Python
python实现数据库跨服务器迁移
Apr 12 Python
python破解zip加密文件的方法
May 31 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
Flask框架信号用法实例分析
Jul 24 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python函数参数定义及传递方式解析
Jun 10 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
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
详解php中 === 的使用
2016/10/24 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
微信小程序之前台循环数据绑定
2017/08/18 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
python中global与nonlocal比较
2014/11/21 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python实现二分查找算法实例
2015/05/26 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
python Gabor滤波器讲解
2020/10/26 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
顶岗实习计划书
2014/01/10 职场文书
给同事的道歉信
2014/01/11 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技