Python语法中,有一种使用%来格式化字符串的用法。这种用法,很像C语言的sprintf函数,很多参数的含义都是一样的。

我们先来举个例子,看看基本语法格式:

>>> domain = 'https://www.pynote.net'

>>> str = 'website domain is %s' % domain

>>> str

'website domain is https://www.pynote.net'

>>>

>>> str2 = 'I built %s %d days\' ago' % (domain, 100)

>>> str2

"I built https://www.pynote.net 100 days' ago"

基本语法是,在待格式化的字符串中有以%所表示的引用,而引用的具体内容,来自字符串后面的那个%符号后面的变量。如果待格式化的字符串中有多个%所表示的引用,字符串后面%后面,就是一个tuple,里面按引用顺序排列各变量。

格式化%s

%s表示一个字符串,将后面对应位置的变量插入%s的位置。这可能是最简单的%格式化了。

>>> ss = 'abc'

>>> str = 'this %s is %s, so %s.' % (ss,ss,ss)

>>> str

'this abc is abc, so abc.'

格式化%d

%d表示这里应该插入一个数字。

>>> dd = 123

>>> str = '%d' % dd

>>> str

'123'

>>> str = '%+d' % dd

>>> str

'+123'

>>> str = '%10d' % dd

>>> str

' 123'

>>> str = '%010d' % dd

>>> str

'0000000123'

>>> str = '%-10d' % dd

>>> str

'123 '

上面的代码显示了%d有一些额外的可使用的符号,用来控制把一个数字格式化如字符串后的显示效果。这些符号不言自明,不需要另外的解释了吧。。。

格式化%x和%X

%x表示将数字按照十六进制插入字符串,%X表示十六进制中的字母大写。

>>> dd

123

>>> str = '%x' % dd

>>> str

'7b'

>>> str = '0x%X' % dd

>>> str

'0x7B'

>>> str = '0x%4X' % dd

>>> str

'0x 7B'

>>> str = '0x%04X' % dd

>>> str

'0x007B'

>>> '%#x' % 32 # # used to add 0x prefix automatically

'0x20'

我个人比较喜欢用%X,十六进制字母大写看起来更酷一点...:)

格式化%f

%f表示对一个浮点数进行字符串格式化。

>>> ff = 1.23456789

>>> str = '%f' % ff

>>> str

'1.234568'

>>> str = '%.4f' % ff # control how long after the dot

>>> str

'1.2346'

>>> '%15f'%ff # just like %f only with specific width

' 1.234568'

>>> '%-15f'%ff

'1.234568 '

>>> '%015f'%ff

'00000001.234568'

>>> '%15.2f'%ff # width.fraction number

' 1.23'

上面将浮点数格式化为字符串,看起来好像是在做四舍五入,其实不是哦,关于Python实现四舍五入的详细情况,请参考这篇文章:Python实现小数四舍五入的方法。

证明%f没有四舍五入的功能:

>>> ff = 2.675

>>> '%.2f' % ff

'2.67'

格式化%e和%E

%e和%E是一样的,都是将数字转换按照科学计数的方式表示的字符串。

>>> num = 12345678987654321

>>> '%e' % num

'1.234568e+16'

>>> '%20E' % num

' 1.234568E+16'

>>> '%-20e' % num

'1.234568e+16 '

格式化%c

%c表示将一个数字转化成对应的unicode字符。

>>> '%c' % 69

'E'

>>> '%c' % 70

'F'

>>> '%c' % 71

'G'

>>> '%c' % 23456

'宠'

>>> '%c' % 23457

'审'

格式化%o

%o表示将一个数组格式化成八进制表示。

>>> '%o' % 8

'10'

>>> '%o' % 16

'20'

>>> '%o' % 32

'40'

>>> '%10o' % 32

' 40'

>>> '%-10o' % 32

'40 '

>>> '%#o' % 32 # # used to add 0o prefix automatically

'0o40'

注意#这个小符号,如果是十六进制,它自动加0x,如果是八进制,它自动加0o。

好了,基本上常用的格式化符号都在上面了,如果后面遇到这里没有的,再加上去。以上就是用%格式化Python字符串的总结。Python程序使用%格式化字符串, 版本兼容性最好(f-string格式化的方式,要Python3.6开始才会有)。

-- EOF --

python格式化字符%e_用%格式化Python字符串相关推荐

  1. python输入字符串并反序result_python字符串反转的四种方法详解

    python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...

  2. python 制作字符视频_20行Python代码实现视频字符化功能

    我们经常在B站上看到一些字符鬼畜视频,主要就是将一个视频转换成字符的样子展现出来.看起来是非常高端,但是实际实现起来确是非常简单,我们只需要接触opencv模块,就能很快的实现视频字符化.但是在此之前 ...

  3. python图片字符分割_图像分割python

    常用的十大 python 图像处理工具 本文为 AI 研习社编译的技术博客,原标题 : 10 Python image manipulation tools. 作者 | Parul Pandey 翻译 ...

  4. python数据字符_python数据清洗系列之字符串处理详解

    数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节.有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此.数据清洗的目的有两个 ...

  5. python文本字符分析编写程序接收字符串_Python程序接受包含所有元音的字符串

    有时您希望根据某些条件接受输入.在这里,我们将看到相同类型的程序.我们将编写一个仅允许带有元音的单词的程序.我们将向他们展示输入是否有效. 让我们一步一步地看看方法.定义元音列表[A,E,I,O,U, ...

  6. python生成字符图形_【Python AsciiArt】利用命令行打印出字符图案

    利用字符串生成工具可以方便的打印出自己想要字符图案,以及如何将图片转换为ASCII ART输出. 最终可以用命令行输出各种彩色图像---->> 一般字符图案 我们在使用一些开源软件的时候, ...

  7. python生成字符画_使用Python生成ASCII字符画

    使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...

  8. python生成字符画_通过python将图片生成字符画

    基础知识: 1.python基础知识 快速学习链接:https://www.shiyanlou.com/courses/214 2.linux命令行操作 快速学习链接:https://www.shiy ...

  9. python 制作字符视频_用Python生成抖音字符视频!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频如下,直接抖音下载的,妥妥的水 ...

最新文章

  1. IOS 笔试题(二)
  2. 编程珠玑第三章习题答案
  3. Oracle存储过程(增、删、改)写法
  4. 如何获取 sql server 最新补丁
  5. KdPrint 在checked 和free版本的不同
  6. hdu 6153 A Secret kmp + dp
  7. 命令行参数python sys模块_python教程--sys模块--命令行参数
  8. markdown知识轻轻来袭
  9. 关于Vector,map等迭代器问题
  10. CentOS7中的firewall 和 iptables
  11. 10 signs that you’re not cut out to be an IT manager
  12. C++经典程序代码大全
  13. oracle 产品宣传片,史上最牛宣传片!河南的美已惊艳了世界!
  14. 大数据分析工具,主要存在哪些最常见的难题?
  15. Vue :将头像/文本生成二维码
  16. IDEA中修改Maven的项目名称
  17. python-urllib3
  18. 马原(2023版)导论笔记
  19. 计算机专业不用学数学的有什么,大学里不用学数学的专业,不想学高数的看过来,你的专业是哪个...
  20. 简单远程遥控程序【网络程序设计 - 简单远程遥控程序,C实现】

热门文章

  1. Android 高德地图添加线段纹理
  2. RGW Bucket Shard优化
  3. Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素
  4. 2022李宏毅机器学习hw1--COVID-19 Cases Prediction
  5. [Swift]LeetCode16. 最接近的三数之和 | 3Sum Closest
  6. 数字源表如何助力miniled光电性能测试
  7. FBI 网站被黑,黑客获取 100 万条联邦特工身份信息
  8. chm打开秒退_CHM文件打开方式
  9. 小程序开发API之改变置顶栏文字内容 wx.setTopBarText(已停,只有旧版微信有效)
  10. 无法获取'https://jcenter.bintray.com/com/网站的资源