一、str.format

按照指定格式格式化字符串,然后返回格式化的字符串,源字符串不变。

以下是Python2.7环境。

1.1、按照位置替换

参考下面例子:

>>> s = '{0} is {1}'
>>> s.format('wo','haoren')
'wo is haoren'
>>> s
'{0} is {1}'
>>> s = '{} {} age.'
>>> s.format('wo',29)
'wo 29 age.'
>>> s = '{0} is {1},{0} {2} age.'
>>> s.format('wo','haoren',20)
'wo is haoren,wo 20 age.'

注意:如果源字符串中有{}这个大括号。那么这个字符串中的{}需要用重复的两遍才可以。否则会报错。

>>> s = 'zheshi {} kuo hao{{}}'
>>> s.format('da')
'zheshi da kuo hao{}'
>>> s
'zheshi {} kuo hao{{}}'
>>> s = 'zheshi {} kuo hao{}'
>>> s.format('da')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

1.2、按照名字匹配替换

参考下面例子:

这个按照名字匹配可以理解为按照字典key值匹配对应的value替换到源字符串对应的key的位置。1.1中的key是位置,这里面把这个数字改为字符串索引即可。

>>> s = '{name} {age} age.{name} is {0}'
>>> s.format('student',name='wo',age=20)
'wo 20 age.wo is student'

1.3、按照索引替换

参考下面例子:

按照索引可以分为按照列表索引和按照字典的key取值两种。

  • 按照列表
>>> s = '{0[0]} {0[1]} age.{0[0]} is {0[2]}'
>>> a = ['wo',20,'student']
>>> s.format(a)
'wo 20 age.wo is student'
  • 按照字典key值
>>> d = {'name':'wo','age':20,'job':'student'}
>>> s = '{0[name]} {0[age]} age.{0[name]} is {0[job]}'
>>> s.format(d)
'wo 20 age.wo is student'

1.4、按照对象格式化

参考下面例子:

>>> import sys
>>> import math
>>> "math.pi=={0.pi}sys.maxunicode=={1.maxunicode}".format(math,sys)
'math.pi==3.14159265359sys.maxunicode==65535'

1.5、格式规约——字符串格式规约

格式限定符是通过{}中带:号带入的。后面跟随的可选字符对是:

填充字符X对齐字符(<左对齐,^中间对齐,>右对齐)X可选最小宽度(如果指定最大宽度,就用句号隔开并再写一个整数)

参考下面例子:

>>> s = '{0:-^8} shi haoren'
>>> s.format('wo')
'---wo--- shi haoren'
>>> s = '{0:.{1}} shi haoren'
>>> s.format('wo',1)
'w shi haoren'
>>> s.format('wo',2)
'wo shi haoren'
>>> s.format('wo',0)
' shi haoren'
>>> s.format('wo',11)
'wo shi haoren'

1.6、格式规约——整数格式规约

格式限定符是通过{}中带:号带入的。后面跟随的可选字符对是:
填充字符X对齐字符(<左对齐,^中间对齐,>右对齐,=用于在符号和数字之间进行填充)X"+"表示必须输出符号,"-"表示只输出负数符号," "表示正数输出空格,负数输出符号X可选#引导b(二进制)、o(八进制)、x(16进制)可选最小宽度(不能指定最大宽度)

参考下面例子:

把十进制数字转换为二进制数,不足8位在前面用0补齐8位:
>>> "{0:08b}".format(2)
'00000010'
>>> "{0:08b}".format(10)
'00001010'
二进制、八进制、十六进制:
>>> "{0:b},{0:o},{0:x},{0:X}".format(10)
'1010,12,a,A'
>>> "{0:#b},{0:#o},{0:#x},{0:#X}".format(10)
'0b1010,0o12,0xa,0XA'
>>> "{0:0=8b}".format(10)
'00001010'
将10进制数转换为8位二进制数,如果不足8位在后面用0补全:
>>> "{0:0<8b}".format(10)
'10100000'

二、

Python——format汇总的更多相关文章

  1. 老猿Python博文汇总目录--按标题排序

    ☞ ░ 前往老猿Python博文目录 ░ 本部分为老猿CSDN全部博文的汇总(含转载部分),所有文章在此未进行归类,仅按文章标题排序,方便关键字查找.本部分内容将至少以周为单位定期更新,可能不包含发布 ...

  2. 2013流行Python项目汇总

    2013流行Python项目汇总 转自:http://www.kankanews.com/ICkengine/archives/102963.shtml Python作为程序员的宠儿,越来越得到人们的 ...

  3. 【387】Python format 格式化函数

    参考:Python format 格式化函数 # 保留小数点后两位 f'{3.1415926:.2f}' # 带符号保留小数点后两位 f'{3.1415926:+.2f}' f'{-1:+.2f}' ...

  4. Python format 格式化函数。

    Python format 格式化函数  Python 字符串 Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 ...

  5. python format()函数的用法

    Python format() 函数的用法 复制自博主 chunlaipiupiupiu 的博客,如有侵权,请联系删除 python中format函数用于字符串的格式化 通过关键字 1 print(' ...

  6. python format 用法详解

    format 用法详解 不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 单个参数可以多次输出,参数顺序可以不相同 填充方式十分灵活,对齐方式十分强大 官方推荐用的方式,%方式将会在后面的版 ...

  7. Python数据结构汇总

    Python数据结构汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.线性数据结构 1>.列表(List) 在内存空间中是连续地址,查询速度快,修改也快,但不利于频繁新 ...

  8. python format函数/print 函数详细讲解(4)

    在python开发过程中,print函数和format函数使用场景特别多,下面分别详细讲解两个函数的用法. 一.print函数 print翻译为中文指打印,在python中能直接输出到控制台,我们可以 ...

  9. python format格式化函数用法

    python format格式化函数用法 原文 Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 : 来代替以前 ...

随机推荐

  1. 随机算法瞎练BZOJ3237&3563&3569三倍经验题

    随机方法真的好骚啊O(∩_∩)O~ 最早的时候miaom提出一个奇怪的东西: 判断一个数列中是否有0/1/2个数出现奇数次 对每个数赋一个随机权值,异或乱搞,对于判2的情况用一个(可能类似线性基的)方 ...

  2. 洛谷P4238【模板】多项式求逆

    洛谷P4238 多项式求逆:http://blog.miskcoo.com/2015/05/polynomial-inverse 注意:直接在点值表达下做$B(x) \equiv 2B'(x) - A ...

  3. 线程池(3)Executors.newCachedThreadPool

    例子: ExecutorService es = Executors.newCachedThreadPool(); try { for (int i = 0; i < 20; i++) { Ru ...

  4. 关于Spring配置文件xml文档的schema约束

    最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  5. D. Blocks 数学题

    Panda has received an assignment of painting a line of blocks. Since Panda is such an intelligent bo ...

  6. C#/.net基础知识

    1 .NET  中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类要多.结构不能申明有默认的构造函数,为结构的副本是又编译器创建 和销毁的,所以不需要默认的构造函数和析构函数.结构 ...

  7. text-transform字母大小写属性设置

    text-transform: none: 默认  不设置,全是小写 capitalize: 每个单词以大写字母开头 uppercase: 全部是大写字母 lowercase:  全部是小写字母 in ...

  8. 在CentOS7上源码安装php7--Install php7 from source on CentOS7

    首先下载php源码包并解压: # wget http://cn2.php.net/get/php-7.0.9.tar.gz/from/this/mirror # .tar.gz # cd php- 然 ...

  9. Python+Selenium与Chrome如何进行完美结合

    zhuan:http://blog.51cto.com/starpoint/2102975?cid=704621 使用WebDriver在Chrome浏览器上进行测试时,需要从http://chrom ...

  10. 一个SQL server的事务存储

    -- ============================================= -- Author: Evan -- Create date: 2018年6月14日 16点27分 - ...