python字符串格式化方法 format函数的使用


python从2.6开始支持format,新的更加容易读懂的字符串格式化方法,
从原来的% 模式变成新的可读性更强的
  1. 花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
  2. 从format参数引入的变量名 、
  3. 冒号:、
  4. 字符位数声明、
  5. 空白自动填补符 的声明
  6. 千分位的声明
  7. 变量类型的声明: 字符串s、数字d、浮点数f
  8. 对齐方向符号 < ^ >
  9. 属性访问符中括号 
  10. 使用惊叹号!后接a 、r、 s,声明 是使用何种模式, acsii模式、引用__repr__ 或 __str__
  11. 增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’  此时xxxx会作为参数传入__format__函数中。 
综合举例说明:
  1. 如: 千分位、浮点数、填充字符、对齐的组合使用:
输入: '{:>18,.2f}'.format(70305084.0)     # :冒号+空白填充+右对齐+固定宽度18+浮点精度.2+浮点数声明f
输出:'     70,305,084.00'
  1. 复杂数据格式化
输入: data = [4, 8, 15, 16, 23, 42]
'{d[4]} {d[5]}'.format(d=data)
输出: 23 42
  1. 复杂数据格式化:
输入: 
class Plant(object):
    type = 'tree'
    kinds = [{'name': 'oak'}, {'name': 'maple'}]

'{p.type}: {p.kinds[0][name]}'.format(p=Plant())
输出:tree: oak
分类举例说明:
  • 花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
'{} {}'.format('one', 'two')
'{1} {0}'.format('one', 'two')
Output
two one
Setup
data = {'first': 'Hodor', 'last': 'Hodor!'}

Old

'%(first)s %(last)s' % data

New

'{first} {last}'.format(**data)

Output

Hodor Hodor!
  • 从format参数引入的变量名 、
  • 冒号:、字符位数声明、空白自动填补符 的声明、千分位的声明、变量类型的声明: 字符串s、数字d、浮点数f 、对齐方向符号 < ^ >
'{:.5}'.format('xylophone')

Output

xylop
'{:^10}'.format('test')

Output

   test   
'{:.{}}'.format('xylophone', 7)

Output

xylopho
'{:4d}'.format(42)

Output

  42
'{:06.2f}'.format(3.141592653589793)

Output

003.14
'{:+d}'.format(42)

Output

+42
千分位、浮点数、填充字符、对齐的组合使用:
输入: '{:>18,.2f}'.format(70305084.0)     # :冒号+空白填充+右对齐+固定宽度18+浮点精度.2+浮点数声明f
输出:'     70,305,084.00'
  • 属性访问符中括号 

Setup

person = {'first': 'Jean-Luc', 'last': 'Picard'}

New

'{p[first]} {p[last]}'.format(p=person)

Output

Jean-Luc Picard

Setup

data = [4, 8, 15, 16, 23, 42]

New

'{d[4]} {d[5]}'.format(d=data)

Output

23 42

Setup

class Plant(object):type = 'tree'kinds = [{'name': 'oak'}, {'name': 'maple'}]

New

'{p.type}: {p.kinds[0][name]}'.format(p=Plant())

Output

tree: oak
  • 惊叹号!限定访问__repr__等魔法函数:

Setup

class Data(object):def __str__(self):return 'str'def __repr__(self):return 'repr'

Old

'%s %r' % (Data(), Data())

New

'{0!s} {0!r}'.format(Data())

Output

str repr
  • 增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’  此时xxxx会作为参数传入__format__函数中。 

Setup

class HAL9000(object):def __format__(self, format):if (format == 'open-the-pod-bay-doors'):return "I'm afraid I can't do that."return 'HAL 9000'

New

'{:open-the-pod-bay-doors}'.format(HAL9000())

Output

I'm afraid I can't do that.
  • 时间日期的特例:

Setup

from datetime import datetime

New

'{:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5))

Output

2001-02-03 04:05
参考: https://pyformat.info/



本文转自fandyst 博客园博客,原文链接:http://www.cnblogs.com/ToDoToTry/    ,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言试题133之画圆形

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:画圆形 2 、温馨提示 想获取…

ReactDom.render和React.render的区别

这个是react最新版api&#xff0c;也就是0.14版本做出的改变。主要是为了使React能在更多的不同环境下更快、更容易构建。于是把react分成了react和react-dom两个部分。这样就为web版的react和移动端的React Native共享组件铺平了道路。也就是说我们可以跨平台使用相同的react组…

[转]阿里编程规范(精简版)

文章目录 1、简介2、命名:3、格式规约4、注释规约5、OOP规约6、集合处理7、控制语句8、异常9、日志10、单元测试11、工程规约1、简介 统一规范标准将有助于提高行业编码规范化水平&#xff0c;帮助行业人员提高开发质量和效率、大大降低代码维护成本 2017年年初&#xff0c;首次…

C#(Sharp)GDI plus与图形编程(计算机图形学必备知识)

文章目录 9.1 GDI+与图形编程9.1.0 GDI概念9.1.1 GDI+绘图命名空间9.1.2 坐标系统9.1.3 Graphics类9.2 绘图工具类9.2.1 Pen类9.2.2 常用图形的绘制方法9.2.3 Brush 类9.3 绘制相关图形9.3.1 绘制曲线9.1 GDI+与图形编程 9.1.0 GDI概念 GDI是Graphics Device Interface的缩写…

.Net之延迟队列

介绍具有队列的特性&#xff0c;再给它附加一个延迟消费队列消息的功能&#xff0c;也就是说可以指定队列中的消息在哪个时间点被消费。使用场景延迟队列在项目中的应用还是比较多的&#xff0c;尤其像电商类平台&#xff1a;订单成功后&#xff0c;在30分钟内没有支付&#xf…

C语言试题134之画直线

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:用 line 画直线 2 、温馨提示…

KeyMob应用开发者服务平台帮助开发者推广和盈利

为什么80%的码农都做不了架构师&#xff1f;>>> 2014年10月&#xff0c;新版KeyMob移动广告聚合平台正式上线&#xff0c;登入KeyMob移动广告聚合平台即可看到聚合功能&#xff0c;目前新KeyMob整合了国内外多家主流的广告平台&#xff0c;实实在在的为应用开发者赚…

Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件

Gdal是用来读写栅格与矢量数据的&#xff0c;在Gdal官网&#xff0c;可以下载相关的资源进行平台的编译。其实Arcgis底层也是用Gdal来读取shp文件的&#xff0c;那在Android中可以直接读写shp文件吗&#xff0c;是可以的。这里已经有人编译了Android端的so &#xff0c;下载地址…

VS code 搭建Vue 项目

必备工具&#xff1a;Vs Code、NodeJs 1、新建一文件目录来存放工程文件 2、右键用VS Code打开 3、Ctr 打开terminal面板&#xff0c;建议先将设置镜像服务器&#xff0c;可能否则安装比较慢。 npm config set registry https://registry.npm.taobao.org --globalnpm config…

C语言试题135之画方形

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:用 rectangle 画方形 2 、温…

C#(Sharp)操作数据库原理及案例精析(强烈建议收藏)

刘一哥C#从入门到精通系列精品教程合集: 1.【C#程序设计】教学讲义——第一章:C#语言概述 2.【C#程序设计】教学讲义——第二章:简单C#程序设计 3.【C#程序设计】教学讲义——第三章:C#语言基础 4.吐血整理:C#顺序、选择、循环结构用法与案例,这一篇就够了! 5.C#数组原来…

SpringMVC4零配置--web.xml

servlet3.0规范后&#xff0c;允许servlet&#xff0c;filter&#xff0c;listener不必声明在web.xml中&#xff0c;而是以硬编码的方式存在&#xff0c;实现容器的零配置。 ServletContainerInitializer&#xff1a;启动容器时负责加载相关配置 Java代码 package javax.servl…

GoldenGate介绍

Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件&#xff0c;它通过解析源数据库在线日志或归档日志获得数据的增量变化&#xff0c;再将这些变化应用到目标数据库&#xff0c;从而实现源数据库与目标数据库同步。Oracle Golden Gate可以在异构的IT基础结构&…

[转]我们为什么要用vue,他解决了什么问题,如何使用它?

Vue.js新手入门指南 最近在逛各大网站&#xff0c;论坛&#xff0c;以及像SegmentFault等编程问答社区&#xff0c;发现Vue.js异常火爆&#xff0c;重复性的提问和内容也很多&#xff0c;楼主自己也趁着这个大前端的热潮&#xff0c;着手学习了一段时间的Vue.js&#xff0c;目前…

java反射机制续

http://www.cnblogs.com/fingerboy/p/5325261.html转载于:https://www.cnblogs.com/yangmin-78819/p/5328869.html

测量人看过来:多种语言编写的测量坐标反算神器附源码(C#/VB)

坐标正算:【小程序】坐标正算神器V1.0(附源程序) 坐标反算一直是困扰测量人的一个问题,坐标反算是指已知两点坐标,反求边长和方位角。本文演示用C#和VB语言实现过程。 文章目录 一、坐标反算原理1. 原理图2. 计算公式3. 象限角4. 限角和坐标方位角的关系二、C#语言实现1. …

如何获取GC(垃圾回收器)的STW(暂停)时间?

前言在现代的容器化和微服务应用中&#xff0c;因为分布式的环境和错综复杂的调用关系&#xff0c;APM&#xff08;Application Performance Monitoring 应用性能监控&#xff09;显得尤为重要&#xff0c;它通过采集应用程序各种指标和请求链路&#xff0c;让你知道系统当前的…

C语言试题136之打印出杨辉三角形(要求打印出 10 行如下图)

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:打印出杨辉三角形(要求打印…

C#控件绑定数据源方式

1:控件数据源绑定泛型Dictionary<string,string> 1):Dictionart<string,string> Dnew Dictionary(string,string);xxx.DataSourcenew BindingList<string>(D.values.ToList());2):Dictionary<string, string> D new Dictionary<string,string>;…

【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法

在利用ArcGIS做土地利用现状图或者规划图时,事先费了好大劲把每个地类对应的图斑进行了符号化(用不同的颜色表示),后来把符号化好的数据导出,并进行加载,发现颜色分类完全丢失了,同样,在利用某个重点区域范围裁剪后,颜色变成了单一的颜色。 符号化成果: 导出后加载矢…