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原始套接字编程示例分享
Feb 21 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
Python 没有main函数的原因
Jul 10 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
anaconda升级sklearn版本的实现方法
Feb 22 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
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
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
python创建关联数组(字典)的方法
2015/05/04 Python
Python 含参构造函数实例详解
2017/05/25 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
《水上飞机》教学反思
2014/04/10 职场文书
篝火晚会策划方案
2014/05/16 职场文书
2014年度党员自我评议
2014/09/13 职场文书
三好学生事迹材料
2014/12/24 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
Python闭包的定义和使用方法
2022/04/11 Python