字符串格式化

Python的字符串格式化有两种方式: 百分号方式、format方式

百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101]

This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator.

1、百分号方式

%[(name)][flags][width].[precision]typecode
  • (name)      可选,用于选择指定的key
  • flags          可选,可供选择的值有:
    • +       右对齐;正数前加正好,负数前加负号;负数中负号是要占一位的
    • -        左对齐;正数前无符号,负数前加负号;
    • 空格    右对齐;正数前加空格,负数前加负号;
    • 0        右对齐;正数前无符号,负数前加负号;用0填充空白处  #后面变量引入必须是数字类型
  • width         可选,占有宽度
  • .precision   可选,小数点后保留的位数
  • typecode    必选
    • s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
    • r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
    • c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
    • o,将整数转换成 八  进制表示,并将其格式化到指定位置
    • x,将整数转换成十六进制表示,并将其格式化到指定位置
    • d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
    • e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
    • E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
    • f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
    • F,同上
    • g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
    • G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
    • %,当字符串中存在格式化标志时,需要用 %%表示一个百分号

注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

常用格式化:

 #!/usr/bin/env python
# _*_ coding:utf-8 _*_
tpl = "i am %s" % "alex" #i am alex
print(tpl)
tpl = "i am %s age %d" % ("alex", 18) #i am alex age 18
print(tpl)
tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18} #i am alex age 18
print(tpl)
tpl = "percent %.2f" % 99.97623 #percent 99.98
print(tpl)
tpl = "i am %(pp).2f" % {"pp": 123.425556, } #i am 123.43
print(tpl)
tpl = "i am %(pp).2f %%" % {"pp": 123.425556, } # i am 123.43 % # 两个%是%
print(tpl)
tpl = "i am %(pp).2f" % {"pp": 123.425556, } # i am 123.43
# tpl = "i am %(pp)-10s jianzuo" % {"pp": "liu", } #左对齐 i am liu jianzuo
# tpl = "i am %(pp)10s jianzuo" % {"pp": "liu", } #右对齐 i am liu jianzuo
print(tpl)
 tpl = "i am %(pp)+06d jianzuo" % {"pp": -123, } #右对齐   i am -00123 jianzuo
print(tpl)
tpl = "i am %(pp)6d jianzuo" % {"pp": -123, } #右对齐 i am -123 jianzuo
print(tpl)
tpl = "i am %(pp)-6d jianzuo" % {"pp": -123, } #右对齐 i am -123 jianzuo
print(tpl)

2、Format方式

[[fill]align][sign][#][0][width][,][.precision][type]

  • fill           【可选】空白处填充的字符
  • align        【可选】对齐方式(需配合width使用)
    • <,内容左对齐
    • >,内容右对齐(默认)
    • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
    • ^,内容居中
  • sign         【可选】有无符号数字
    • +,正号加正,负号加负;
    •  -,正号不变,负号加负;
    • 空格 ,正号空格,负号加负;
  • #            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
  • ,            【可选】为数字添加分隔符,如:1,000,000
  • width       【可选】格式化位所占宽度
  • .precision 【可选】小数位保留精度
  • type         【可选】格式化类型
    • 传入” 字符串类型 “的参数

      • s,格式化字符串类型数据
      • 空白,未指定类型,则默认是None,同s
    • 传入“ 整数类型 ”的参数
      • b,将10进制整数自动转换成2进制表示然后格式化
      • c,将10进制整数自动转换为其对应的unicode字符
      • d,十进制整数
      • o,将10进制整数自动转换成8进制表示然后格式化;
      • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
      • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
    • 传入“ 浮点型或小数类型 ”的参数
      • e, 转换为科学计数法(小写e)表示,然后格式化;
      • E, 转换为科学计数法(大写E)表示,然后格式化;
      • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • g, 自动在e和f中切换
      • G, 自动在E和F中切换
      • %,显示百分比(默认显示小数点后6位)

常用格式化:

 # {} 是占位符

 tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')  # i am seven, age 18, alex
print(tpl)
tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex']) #传入列表元素 i am seven, age 18, alex
print(tpl)
tpl = "i am {0}, age {1}, really {0}".format("seven", 18) # 占位符内可以加索引 i am seven, age 18, really seven
print(tpl)
tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18]) # #将列表迭代放入 i am seven, age 18, really seven
print(tpl)
tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18) # 占位符写入key i am seven, age 18, really seven
print(tpl)
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}) # 传入字典,占位符写入key i am seven, age 18, really seven
print(tpl)
tpl = "i am {0[0]}, age {0[1]}, really {1[2]}".format([1, 2, 3], [11, 22, 33]) # 如 传入的列表1 列表2 为两个元素,在占位符内显示 0 1 i am 1, age 2, really 33
print(tpl)
tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1) # 占位符内 :后是type i am seven, age 18, money 88888.100000
print(tpl)
tpl = "i am {:s}, age {:d}".format(*["seven", 18]) #列表循环传入 i am seven, age 18
print(tpl)
tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18) # 传入key value i am seven, age 18
print(tpl)
tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}) # 传入字典 i am seven, age 18
print(tpl)
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) # numbers: 1111,17,15,f,F, 1587.623000%
print(tpl)
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) #numbers: 1111,17,15,f,F, 1587.623000%
print(tpl)
tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15) # numbers: 1111,17,15,f,F, 1500.000000%
print(tpl)
tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15) #numbers: 1111,17,15,f,F, 1500.000000%
print(tpl)

Python基础-7.1字符串的格式化的更多相关文章

  1. python基础的输入字符串的格式化

    name = input("name:") age = input ("age:") job = input ("job") info = ...

  2. 『Python基础-4』字符串

    # 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...

  3. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  4. Python基础学习_01字符串的拼接(字符串的格式化输出)

    # 字符串的拼接 ---字符串的格式化输出 # 字符串的拼接 ---字符串的格式化输出 name = input("name:") age = input("age:&q ...

  5. .Net程序员之Python基础教程学习----字符串的使用 [Second Day]

         在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...

  6. Python基础:数据类型-字符串(7)

    1.字符串基本操作 字符串是由字符组成的一串字符序列,字符串是有顺序的,从左到右,索引从0开始,依次递增. Python中字符串类型:str. Python中字符串的三种表示方式: (1)普通字符串: ...

  7. Python基础学习之字符串(1)

    字符串 由字符组成的序列,即字符串. 1.基本字符串操作 所有标准的序列操作(索引.切片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用: >>> website=' ...

  8. 【python基础语法】字符串常用方法 、列表(第3天课堂笔记)

    """ 字符串的方法 join 字符串拼接,将列表转换为字符串 find 查找元素位置 count 查找元素个数 replace 替换字符 split 字符串分割,将字符 ...

  9. Python基础总结(字符串常用,数字类型转换,基本运算符与流程控制)

    一.字符串常用操作 #Python strip() 方法用于移除字符串头尾指定的字符(默认为空格) name='*egon**' print(name.strip('*'))#移除 name 变量对应 ...

随机推荐

  1. HBase(二)——搭建Standalone HBase

    HBase搭建--Standalone HBase 1.搭建方式说明 the setup of a single-node standalone HBase. A standalone instanc ...

  2. C#基础知识之SharpZipLib压缩解压的使用

    项目中使用 Velocity 将模板和生成的动态内容(HTML.XML等)合并保存到redis数据库中,考虑到压缩的文件容量会比较小,方便传输而且存储所使用的空间也会比较小,所以要压缩一下,读取的时候 ...

  3. java Arrays源码浅出

    1.toString 返回指定数组内容的字符串表示形式. demo: 由demo可窥见Arrays.toString的所做的工作就是将数组元素转换为字符串(以逗号分割数组元素,包裹在方括号中). 源码 ...

  4. 4.Pod控制器

    Controller-manager: Kube-controller-manager Cloud-controller-manager:在K8S上启用CloudProvider的时候才需要,用来配合 ...

  5. 基于http方式搭建YUM源服务器

    基于http方式搭建YUM源服务器 (2012-09-21 11:59:14) 转载▼ 标签: yum linux lnmp lamp http 分类: Linux 为了方便公司80多台Linux服务 ...

  6. python如何导入自定义文件和模块$PYTHONHOME$\Lib\site-packages 方法

    python 中如何引用自己创建的源文件(*.py)呢? 也就是所谓的模块. 假如,你有一个自定义的源文件,文件名:saySomething.py .里面有个函数,函数名:sayHello.如下图: ...

  7. 解决GitHub加载不出图片问题

    解决方法: 复制 raw.githubusercontent.com 去 https://www.ipaddress.com 搜索,把给出的IP地址存储到 host 文件中: 如 199.232.28 ...

  8. springboot日期转换器

    注:该功能并非springboot特有的功能,springmvc同样具有         一.使用方法     创建一个DateConverter类实现Converter接口 注:importorg. ...

  9. mysql INSERT语句 语法

    mysql INSERT语句 语法 作用:用于向表格中插入新的行. 语法:INSERT INTO 表名称 VALUES (值1, 值2,....)或者INSERT INTO table_name (列 ...

  10. GPSMap程序源代码

    1. 界面 第一次打开时选择工程文件 MainActivity.java Tools.OpenDialog(new ICallback(){ public void OnClick(String pa ...