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对IP进行转换的一些操作技巧小结
Nov 09 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
Python入门教程之运算符与控制流
Aug 17 Python
python+opencv识别图片中的圆形
Mar 25 Python
python调用百度语音识别api
Aug 30 Python
Python hashlib模块加密过程解析
Nov 05 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
python 自动识别并连接串口的实现
Jan 19 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 操作调试的方法
2012/07/12 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php算法实例分享
2015/07/14 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
浅析node.js中close事件
2014/11/26 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
PyQt5实现画布小程序
2020/05/30 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
满月酒答谢词
2014/01/14 职场文书
装修致歉信
2014/01/15 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
警示教育观后感
2015/06/17 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL