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程序的方法
Apr 21 Python
python实现k均值算法示例(k均值聚类算法)
Mar 16 Python
Python中处理时间的几种方法小结
Apr 09 Python
python实现给数组按片赋值的方法
Jul 28 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
django 环境变量配置过程详解
Aug 06 Python
python flask搭建web应用教程
Nov 19 Python
python实现excel公式格式化的示例代码
Dec 23 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
python 如何获取页面所有a标签下href的值
May 06 Python
Python中的socket网络模块介绍
Jul 23 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
Snoopy类使用小例子
2008/04/15 PHP
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP垃圾回收机制简单说明
2010/07/22 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP基本语法总结
2014/09/06 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
php时间戳转换代码详解
2019/08/04 PHP
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
javascript动画浅析
2012/08/30 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
JSON 数据格式详解
2017/09/13 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
vue中添加mp3音频文件的方法
2018/03/02 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
使用Python写个小监控
2016/01/27 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
简单了解django缓存方式及配置
2019/07/19 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
普通员工辞职信
2014/01/17 职场文书
银行优秀员工事迹
2014/02/06 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
政风行风评议心得体会
2014/10/21 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书