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

其中,百分号方式比较老,而format方式是比较先进的,企图替代古老的方式,目前两者共存。

1、百分号方式

格式:%[(name)][flags][width].[precision]typecode

  • (name)    可选,用于选择指定的key
  • flags        可选,可供选择的值有:
    • + 右对齐:正数的加正号,负数的加负号
    • - 左对齐:正数前没有负号,负数前加负号
  • width    可选,占有宽度
  • .precision    可选,小数点后保留的位数
  • typecode     必选
    • s,获取传入的对象__str__方法的返回值,并将其格式化到指定位置
    • r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
    • c,整数:将数字转换成其unicode对应的值,10进制范围为0 <= i <=1114111
    • o,将整数转换成八进制表示,并将其格式化到指定位置
    • x,将整数转换成16进制,并将其格式化到指定位置
    • d,将整数,浮点数转化为十进制表示,并将其格式化到指定位置

例子:

  1. >>> s = 'hello, %s!' % 'python'
  2. >>> s
  3. 'hello, python!'
  4.  
  5. >>> s = 'hello, %s, %d!' % ('python', 2018)
  6. >>> s
  7. 'hello, python, 2018!'
  8.  
  9. >>> s = 'hello, %(name)s, %(year)d!' % {'name': 'python', 'year': 2018}
  10. >>> s
  11. 'hello, python, 2018!'
  12.  
  13. >>> s = 'hello, %(name)+10s, %(year)-10d!' % {'name': 'python', 'year': 2018}
  14. >>> s
  15. 'hello, python, 2018 !'
  16.  
  17. >>> s = 'hello, %(name)s, %(year).3f!' % {'name': 'python', 'year': 2018}
  18. >>> s
  19. 'hello, python, 2018.000!'

%r 与 %s 区别:

%r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户显示输出的。

  1. >>> a = 'sunday'
  2. >>> print("Today is %s" % a)
  3. Today is sunday
  4. >>> print("Today is %r" % a)
  5. Today is 'sunday' # 格式化部分用单引号输出
  6.  
  7. >>> from datetime import datetime
  8. >>> d = datetime.now()
  9. >>> print('%s' % d)
  10. 2018-09-10 08:52:00.769949
  11. >>> print('%r' % d)
  12. datetime.datetime(2018, 9, 10, 8, 52, 0, 769949) # 可以看见与上面输出存在明显的区别

2、format方式

  1. >>> s = 'hello, {}, {}'.format('python', 2018)
  2. >>> s
  3. 'hello, python, 2018'
  4.  
  5. >>> s = 'hello, {0}, {1}, hi, {0}'.format('python', 2018)
  6. >>> s
  7. 'hello, python, 2018, hi, python'
  8.  
  9. >>> s = 'hello, {name}, {year}, hi, {name}'.format(name='python', year=2018)
  10. >>> s
  11. 'hello, python, 2018, hi, python'
  12.  
  13. >>> s = 'hello, {:s}, {:d}, hi, {:f}'.format('python', 2018, 9.7)
  14. >>> s
  15. 'hello, python, 2018, hi, 9.700000'

Python 字符串格式化输出方式的更多相关文章

  1. python字符串格式化输出

    python格式化输出 python格式化输出有两种方式:百分号和format format的功能要比百分号方式强大,其中format独有的可以自定义字符填充空白.字符串居中显示.转换二进制.整数自动 ...

  2. python 字符串格式化输出 %d,%s及 format函数

    旧式格式化方式:%s,%d 1.顺序填入格式化内容 s = "hello %s, hello %d"%("world", 100) print(s) 结果: ' ...

  3. python字符串格式化输出 %和format举例

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #pyversion:python3.5 #owner:fuzj s1 = "i am %s, i ...

  4. python 字符串格式化 输出

    1. 需要输出3列,为了输出好看,需要制定每一列的宽度: ‘%6.2f’ % 1.235 # 长度为6,保留2为小数 print '{0:20} {1:<20} {1:<20}\r\n'. ...

  5. python之格式化输出(3种方式)

    python3.6后支持3种格式化输出方式,其中前两种为%-formatting及str.format ,第三种即为 f-string. 1.%-formatting 据传该格式化方法源于C.. &g ...

  6. (Python )格式化输出、文件操作、json

    本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...

  7. Python基本格式化输出

    什么叫格式化输出? 数据按照某种特殊的要求输出 假如输入一个整数,希望整数按照十六进制,八进制输出,如果输入一个小数,希望小数保留后面2位数然后输出,或者以科学计数法的方式来输出小数.字符串的输出希望 ...

  8. python字符串格式化之学习笔记

    在python中格式化输出字符串使用的是%运算符,通用的形式为 •格式标记字符串 % 要输出的值组其中,左边部分的”格式标记字符串“可以完全和c中的一致.右边的'值组'如果有两个及以上的值则需要用小括 ...

  9. Python学习:12.Python字符串格式化

    字符串格式化 讲解Python这么久,也没有讲解Python的字符串的格式化,那我们今天就来了解一下python字符串格式化的强大之处. 首先我们先理解一下为什么要有字符串的格式化,就是为了方便字符串 ...

随机推荐

  1. express不是内部命令

    有时用npm install express -g安装完express时,在写express -v会显示express不是内部命令 这样的话如果自己的安装没有问题的话就要考虑到环境变量了 win7 P ...

  2. SQL的注入式攻击方式和避免方法

    SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行.任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQ ...

  3. java 使用hashmap一个键对应多值的方法

    背景:在你使用map对象时,你可能会有一个key,对应多个值的需求 实现: import java.util.ArrayList; import java.util.HashMap; import j ...

  4. C. Tanya and Toys_模拟

    C. Tanya and Toys time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  5. 模拟水题,牛吃草(POJ2459)

    题目链接:http://poj.org/problem?id=2459 题目大意:有C头牛,下面有C行,每头牛放进草地的时间,每天吃一个草,总共有F1个草,想要在第D的时候,草地只剩下F2个草. 解题 ...

  6. Python 数据驱动 unittest + ddt

    一数据驱动测试的含义: 在百度百科上的解释是: 数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行动态测试时,需要测试软件产 ...

  7. 使用ssl模块配置同时支持http和https并存

    博客已经迁移,请访问: https://www.helingfeng.com

  8. ref 微软官网

    https://docs.microsoft.com/zh-cn/previous-versions/14akc2c7(v=vs.110)

  9. git常用命令图解

  10. (转载)git常用命令

    创建和使用git ssh key 首先设置git的user name和email: git config --global user.name "xxx" git config - ...