Python实现字符串格式化输出的方法详解


Posted in Python onSeptember 20, 2017

本文实例讲述了Python实现字符串格式化输出的方法。分享给大家供大家参考,具体如下:

python属于强类型的语言,如果像java一样操作字符串和数字的“+”时,会出现TypeError。而python的格式化方法有多种,比如使用占位符,使用format,或者是自定义模版等等。这里介绍了其中的几种方法

下面这个例子很好的说明了python属于强类型语言:

print "abc" + 123
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

所以,需要进行转换输出。

常用占位符

符号 意思
%s 字符串
%d / %i 十进制整数
%u 过时的十进制使用方法
%o 八进制整数
%x / %X 十六进制整数
%f / %F 浮点数
%e / %E 科学技术法
%% 输出%

使用方式一

直接使用占位符

print '%s+%d' % ('abc', 123) #abc+123
print '%o' % 10 #12 八进制

为%d指定长度,%05d,如果数字小于5位会在左边补0,大于指定长度时不受此影响

print '%s+%05d' % ('abc', 123) #abc+00123
print '%03x' % 10 #00a
print '%.3e' % 123456789 #1.235e+08 保留3位小数的科学技术法

使用方式二

使用字典

print 'Python is %(args)s, %(args)s, %(args)s beautiful' % {'args': 'very'} #Python is very, very, very beautiful

当拼接有许多重复元素时,使用这种方式比较好

使用方式三

使用format的方式。在2.6之后的版本支持。

print '{0}{1}{2}{3}'.format('a', 'b', 'c', 123) #abc123
print '{}, {}, {}'.format('a', 'b', 'c') #abc 2.7+ only
print '{2}, {1}, {0}'.format('a', 'b', 'c') #c, b, a
print '{2}, {1}, {0}'.format(*'abc') #c, b, a
print '{0}{1}{0}'.format('abra', 'cad') #abracadabra

通过参数名字格式化

print 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W') #Coordinates: 37.24N, -115.81W
coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
print 'Coordinates: {latitude}, {longitude}'.format(**coord) #Coordinates: 37.24N, -115.81W

使用元组

coord = (3, 5)
print 'X: {0[0]}; Y: {0[1]}'.format(coord) #X: 3; Y: 5

进制

# format also supports binary numbers
"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42) #'int: 42; hex: 2a; oct: 52; bin: 101010'
3 
# with 0x, 0o, or 0b as prefix:
"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42) #'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'

为数字加点号

'{:,}'.format(1234567890) #'1,234,567,890'

百分比表示

'{:.2%}'.format(19.5 / 22) # '88.64%'

时间格式化

import datetime
today = datetime.datetime.today()
'{:%Y-%m-%d %H:%M:%S}'.format(d) #'2013-09-01 21:10:22'
'{:%Y-%m-%d}'.format(today) #'2013-09-01'

另外也可以使用strftime来格式化时间

使用方式四

自定义模版

from string import Template
s = Template('$sargs plus $aargs')
s.substitute(sargs = 'abc', aargs = 123) #'abc plus 123'

这里有substitue和safe_substitute两种属性

d = dict(sargs = 'abc')
# s.substitute(d)
# it's a KeyError
s.safe_substitute(d) #'abc plus $aargs'

如果不使用safe_substitute,参数不全时会出现KeyError异常。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python采集博客中上传的QQ截图文件
Jul 18 Python
Python实现的检测网站挂马程序
Nov 30 Python
python3操作mysql数据库的方法
Jun 23 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
Python之列表实现栈的工作功能
Jan 28 Python
python面试题小结附答案实例代码
Apr 11 Python
python与字符编码问题
May 24 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python OpenGL基本配置方式
May 20 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 #Python
python select.select模块通信全过程解析
Sep 20 #Python
基于python的字节编译详解
Sep 20 #Python
MySQL适配器PyMySQL详解
Sep 20 #Python
Python字符串格式化的方法(两种)
Sep 19 #Python
python3 pillow生成简单验证码图片的示例
Sep 19 #Python
Python文件操作之合并文本文件内容示例代码
Sep 19 #Python
You might like
新52大事件
2020/03/03 欧美动漫
终于听上了直流胆调频
2021/03/02 无线电
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
Python zip()函数用法实例分析
2018/03/17 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
管理失职检讨书
2014/02/12 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
销售团队获奖感言
2014/08/14 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
普通党员对照检查材料
2014/09/24 职场文书
小学老师对学生的评语
2014/12/29 职场文书
教师党员承诺书2015
2015/01/21 职场文书
个人总结与自我评价
2015/02/14 职场文书
中标通知书格式
2015/04/17 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android