Python格式化输出字符串方法小结【%与format】

 更新时间:2018年10月29日 23:57:59   作者:大西  
这篇文章主要介绍了Python格式化输出字符串方法,结合实例形式总结分析了使用%与format函数进行字符串格式化操作相关实现技巧与注意事项,需要的朋友可以参考下

python格式化字符串有%和{}两种 字符串格式控制符.

字符串输入数据格式类型(%格式操作符号)

%% 百分号标记#就是输出一个%
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中

字符串格式控制%[(name)][flag][width][.][precision]type
name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名

flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b

width:宽度(最短长度,包含小数点,小于width时会填充)

precision:小数点后的位数,与C相同

type:输入格式类型,请看上面

还有一种format_spec格式{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
{}包裹name命名传递给format以命名=值 写法,非字典映射,其他和上面相同

fill =  <any character>  #fill是表示可以填写任何字符

align =  "<" | ">" | "=" | "^"  #align是对齐方式,<是左对齐, >是右对齐,^是居中对齐。

sign  =  "+" | "-" | " "  #sign是符号, +表示正号, -表示负号

width =  integer  #width是数字宽度,表示总共输出多少位数字

precision =  integer  #precision是小数保留位数

type =  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"  #type是输出数字值是的表示方式,比如b是二进制表示;比如E是指数表示;比如X是十六进制表示

例子(本机测试运行环境:Python3.6)

>>> print("{:,}".format(123456))#输出1234,56
123,456
>>> print("{a:w^8}".format(a="8"))#输出www8wwww,填充w
www8wwww
>>> print("%.5f" %5)#输出5.000000
5.00000
>>> print("%-7s3" %("python"))#输出python 3
python 3
>>> print("%.3e" %2016)#输出2.016e+03,也可以写大E
2.016e+03
>>> print("%d %s" %(123456,"jb51"))#输出123456 jb51
123456 jb51
>>> print("%(what)s is %(year)d" % {"what":"this year","year":2016})#输出this year is 2016
this year is 2016
>>> print("{0}{1}".format("hello","fun"))#输出hellofun,这与CSharp的格式化字符(占位符)相似
hellofun
>>> print("{}{}{}".format("jb51",".","net"))#输出jb51.net
jb51.net
>>> print("{a[0]}{a[1]}{a[2]}".format(a=["jb51",".","net"]))#输出jb51.net
jb51.net
>>> print("{dict[host]}{dict[dot]}{dict[domain]}".format(dict={"host":"www","domain":"jb51.net","dot":"."}))#输出www.jb51.net
www.jb51.net
>>> print("{a}{b}".format(a="python",b="3"))#输出python3
python3
>>> print("{who} {doing} {0}".format("python",doing="like",who="I"))#输出I like python
I like python
>>>

另:关于Python format函数格式化输出操作可参考前面一篇Python字符串基本操作

相关文章

  • Python中PyQt5可视化界面通过拖拽来上传文件的实现

    Python中PyQt5可视化界面通过拖拽来上传文件的实现

    本文主要介绍了Python中PyQt5可视化界面通过拖拽来上传文件的实现,通过构建一个可接受拖拽的区域,并重写相关事件处理函数,可以方便地实现文件上传功能,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • PyCharm软件无法安装lxml库的问题及解决

    PyCharm软件无法安装lxml库的问题及解决

    这篇文章主要介绍了PyCharm软件无法安装lxml库的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • python程序需要编译吗

    python程序需要编译吗

    在本篇文章里小编给大家整理了关于python程序编译相关的知识点内容,有兴趣的朋友们参考学习下。
    2020-06-06
  • python深度学习tensorflow卷积层示例教程

    python深度学习tensorflow卷积层示例教程

    这篇文章主要为大家介绍了python深度学习tensorflow卷积层示例教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python和perl实现批量对目录下电子书文件重命名的代码分享

    Python和perl实现批量对目录下电子书文件重命名的代码分享

    这篇文章主要介绍了Python和perl实现批量对目录下电子书文件重命名的代码分享,本文同时给出了Python和perl两种语言的实现代码,需要的朋友可以参考下
    2014-11-11
  • Python利用numpy实现三层神经网络的示例代码

    Python利用numpy实现三层神经网络的示例代码

    这篇文章主要介绍了Python利用numpy实现三层神经网络的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python和node.js生成当前时间戳的示例

    python和node.js生成当前时间戳的示例

    这篇文章主要介绍了python和node.js生成当前时间戳的示例,帮助大家更好的理解和学习python与node.js,感兴趣的朋友可以了解下
    2020-09-09
  • Python进程管理神器Supervisor详解

    Python进程管理神器Supervisor详解

    Supervisor 是一款 Python 开发的进程管理系统,允许用户监视和控制 Linux 上的进程,能将一个普通命令行进程变为后台守护进程,异常退出时能自动重启,这篇文章主要介绍了Python进程管理神器Supervisor,需要的朋友可以参考下
    2022-07-07
  • Python 如何解决稀疏矩阵运算

    Python 如何解决稀疏矩阵运算

    这篇文章主要介绍了Python 解决稀疏矩阵运算的操作,具有很好的参考价值,希望对大家有所帮助。
    2021-05-05
  • Python通过pytesseract库实现识别图片中的文字

    Python通过pytesseract库实现识别图片中的文字

    Pytesseract是一个Python的OCR库,它可以识别图片中的文本并将其转换成文本形式。本文就来用pytesseract库实现识别图片中的文字,感兴趣的可以了解一下
    2023-05-05

最新评论