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将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
Python作用域与名字空间原理详解
Mar 21 Python
Python实现简单的猜单词小游戏
Oct 28 Python
python 实现图片批量压缩的示例
Dec 18 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
python实现图片批量压缩
Apr 24 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 Python
Python语言内置数据类型
Feb 24 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
如何判断php数组的维度
2013/06/10 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
python 识别图片中的文字信息方法
2018/05/10 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
什么是会话Bean
2015/05/14 面试题
杠杆的科学教学反思
2014/01/10 职场文书
机关办公室岗位职责
2014/04/16 职场文书
租房协议书样本
2014/08/20 职场文书
党支部承诺书
2015/01/20 职场文书
城南旧事读书笔记
2015/06/29 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
2015大一新生军训感言
2015/08/01 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Python使用永中文档转换服务
2022/05/06 Python