原文:https://blog.csdn.net/handsomekang/article/details/9183303

Python字符串格式化--format()方法-----https://blog.csdn.net/i_chaoren/article/details/77922939

字符串对齐------------------------------------https://python3-cookbook.readthedocs.io/zh_CN/latest/c02/p13_aligning_text_strings.html

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010180339/article/details/9183303

自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。

语法

它通过{}和:来代替%。

“映射”示例

通过位置

  1.  
    In [1]: '{0},{1}'.format('kzc',18)
  2.  
    Out[1]: 'kzc,18'
  3.  
    In [2]: '{},{}'.format('kzc',18)
  4.  
    Out[2]: 'kzc,18'
  5.  
    In [3]: '{1},{0},{1}'.format('kzc',18)
  6.  
    Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
通过关键字参数

  1.  
    In [5]: '{name},{age}'.format(age=18,name='kzc')
  2.  
    Out[5]: 'kzc,18'

通过对象属性

  1.  
    class Person:
  2.  
    def __init__(self,name,age):
  3.  
    self.name,self.age = name,age
  4.  
    def __str__(self):
  5.  
    return 'This guy is {self.name},is {self.age} old'.format(self=self)
  1.  
    In [2]: str(Person('kzc',18))
  2.  
    Out[2]: 'This guy is kzc,is 18 old'

通过下标

  1.  
    In [7]: p=['kzc',18]
  2.  
    In [8]: '{0[0]},{0[1]}'.format(p)
  3.  
    Out[8]: 'kzc,18'

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。

格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如

  1.  
    In [15]: '{:>8}'.format('189')
  2.  
    Out[15]: ' 189'
  3.  
    In [16]: '{:0>8}'.format('189')
  4.  
    Out[16]: '00000189'
  5.  
    In [17]: '{:a>8}'.format('189')
  6.  
    Out[17]: 'aaaaa189'

精度与类型f
精度常跟类型f一起使用

  1.  
    In [44]: '{:.2f}'.format(321.33345)
  2.  
    Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

  1.  
    In [54]: '{:b}'.format(17)
  2.  
    Out[54]: '10001'
  3.  
    In [55]: '{:d}'.format(17)
  4.  
    Out[55]: '17'
  5.  
    In [56]: '{:o}'.format(17)
  6.  
    Out[56]: '21'
  7.  
    In [57]: '{:x}'.format(17)
  8.  
    Out[57]: '11'

用,号还能用来做金额的千位分隔符。

In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'

(转)飘逸的python - 增强的格式化字符串format函数的更多相关文章

  1. 飘逸的python - 增强的格式化字符串format函数

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...

  2. python - 增强的格式化字符串format函数

    语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.form ...

  3. 【Python开发】增强的格式化字符串format函数

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...

  4. 增强的格式化字符串format函数

    http://blog.csdn.net/handsomekang/article/details/9183303 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓 ...

  5. Python 的格式化字符串format函数

    阅读mattkang在csdn中的博客<飘逸的python - 增强的格式化字符串format函数>所做笔记 自从python2.6开始,新增了一种格式化字符串的函数str.format( ...

  6. 格式化字符串format函数

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...

  7. python格式化字符串format函数

    1. format可以接受无限个的参数,位置可以不按顺序: In [1]: "{} {}".format("hello","world") ...

  8. python_108_格式化字符串format函数

    #通过关键字映射 print('I am {name},age {age}'.format(name='qiqi齐',age=18))#I am qiqi齐,age 18 dictory={'name ...

  9. python基础之格式化字符串

    一.格式化字符功能介绍 应用场景:一般在print的时候提供占位符;python中提供两种格式化字符串方式:第一种是古老的利用百分号的方式,第二种是增强的格式化字符串.format 函数. 二.古老的 ...

随机推荐

  1. linux CentOS 7 安装 RabbitMQ Erlang 21.0

    1. 安装erlang 安装依赖环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixO ...

  2. 【Unity】1.0 第1章 Unity—3D游戏开发和虚拟现实应用开发的首选

    分类:Unity.C#.VS2015 创建日期:2016-03-23 一.简介 Unity是跨平台2D.3D游戏和虚拟现实高级应用程序的专业开发引擎,是由Unity Technologies公司研制的 ...

  3. HDU 1716 排列2 (格式问题+排列)

    题意:. 析:我们完全可以STL里面的函数next_permutation(),然后方便,又简单,这个题坑就是在格式上. 行末不能有空格,结尾不能有空行,不大好控制,必须控制好第一次数. 这个题本应该 ...

  4. ArcGIS Desktop python Add-in 测试一个插件

    a)制作一个插件文件 先找到工作目录,双击运行makeaddin.py脚本.这个脚本拷贝所有插件需要的文件和文件夹并在工作目录形成一个压缩文件.该压缩文件名为工作目录名称加上".esriad ...

  5. java 把InputStream流写入到文件中

    基于流(Stream)的解决 流是单向的有方向性的描述信息流的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等. 写入文件,对程序来说是出,是写 ...

  6. 团队作业第四周(HCL盐酸队)——项目冲刺(第一篇)

    任务认领情况: 1.坦克类实现:李密,卢泰佑 2.子弹类,线程类实现:黄国航 赖少勇 3.画笔类,地图的实现:陈舒标  黄宇航 明日任务安排: 今天在通过已经购买的GUI书籍的帮助下,已经实现了界面的 ...

  7. EBS FORM 编译

    http://www.cnblogs.com/quanweiru/archive/2013/01/01/2841574.html EBS R11============================ ...

  8. [ACM_数据结构] HDU 1166 敌兵布阵 线段树 或 树状数组

    #include<iostream> #include<cstdio> #include<memory.h> using namespace std; ]; //- ...

  9. 手动处理TFS数据仓库服务和分析服务

    当您需要报告中最新的数据时,当发生错误时,或者在解决了模式冲突之后,您可以手动处理Team Foundation Server(TFS)关系数据库(TFSHStor)或SQLServer Analys ...

  10. SQL语句小tips(持续更新)

    统计非法数据 判断people_id是否是32为字母组成的,统计不满足要求的数据 SELECT COUNT(IF(BINARY people_id NOT REGEXP '^[0-9a-z]{32}' ...