美文网首页
字符串格式化

字符串格式化

作者: YuAllon | 来源:发表于2019-06-16 12:00 被阅读0次

写在前面的话:

在处理天文数据的过程中,尤其是天文坐标转换时,自己希望能得到同样精度的数据,这时候就要用到字符串格式化,一开始自己对字符串格式化也只是停留在取精度这样简单的印象中。随着慢慢的了解,发现字符串格式化远比自己想象中强大。故做以下笔记记之。

字符串格式化

字符串格式化允许在单个步骤中对一个字符串执行多个特定类型的\color{red}{替换}

两种实现形式:

字符串格式化表达式:'...%s...' % (values)

字符串格式化方法调用:'...{}...'.format(values)

尽管两种方式都能实现字符串的格式化,我自己比较喜欢表达式,所以以下笔记只对字符串格式化表达式做总结。

字符串格式化表达式基础

当应用在字符串上的时候,%运算符提供了根据自定义,将不同类型的值格式化为字符串的简单方法。

格式化字符串:
  1. 在%运算符的左侧放置一个需要格式化的字符串,这个字符串带有一个或者多个内嵌的转换目标,都以%开头。
  2. 在运算符%右侧放置一个或多个,内嵌在元组中的对象,这些对象将会插入到你想让Python进行格式化的左侧字符串中,并替换一个或者多个转换目标。
# '  '及其内部是%运算符左侧需要格式化的字符串,()及其内部是%运算符右边元组对象
'%04d -- %.3f -- %s' % (42, 3.14159, [1, 2, 3])
# 格式化后的输出,因为是字符串格式化,所以输出的结果一定是字符串类型
'0042 -- 3.142 -- [1, 2, 3]'

上面例子中:当不止一个值待格式化的时候,右侧应该用圆括号括起来(放到元组中)。
\color{red}{请记住:格式化总是会创建一个新字符串,而不是对左侧的字符串进行修改}

字符串格式化类型码:
代码 意义
s \color{red}{字符串}
r 与s相同,但使用repr,而不是str
c 字符(int或str)
d \color{red}{十进制数字}
i 整数
0 八进制数值
x 十六进制数字
X 与x相同,但是使用大写字母
e 带有指数的浮点数,小写
E 与e相同,大写
f \color{red}{十进制浮点数,默认精度为6}
F 与f相同,大写
g 浮点数e或f
G 浮点数E或F
% %字面量(编码为%%)
一般结构:
%[(keyname)][flags][width][.precision]typecode
keyname:为索引在表达式右侧使用的字典提供键名称
flags:罗列出说明格式的标签,如左对齐(-)、数值符号(+)、正数前的空白以及负数前的-(空格)和零填充(0)
width:为被替换的文本给出总的最小字段宽度
.precision:为浮点数设置小数点后显示的数位(精度)
width和precision部分,都可以编写一个*,以指定他们应该从表达式右侧的输入值中的下一项去值。
#例子
x = 1234 
#%-6d表示左对齐;%06d字符串长度为6,空值0填充
res = 'integers: ...%d...%-6d...%06d' % (x, x ,x)
res
'integers: ...1234...1234  ...001234'
#
'%f, %.2f, %.*f' %(1/3.0, 1/3.0, 4, 1/3.0)
'0.333333, 0.33, 0.3333'
#基于字典的格式化表达式
'%(qty)d more %(food)s' % {'qty':1, 'food': 'spam'}
'1 more spam'

参考书籍:《Python学习手册》

2019-06-16

相关文章

  • Python基础(18) - 字符串格式化与模板字符串方法

    字符串格式化的各种方法 格式化字符串的方法 使用%格式化 模板字符串 字符串的format方法 fstring 什...

  • 简单的宏定义(不定期补充)

    控制台输出 RGB色值 格式化字符串 格式化字符串 输出点、坐标、Rect 格式化数字

  • python基础知识(3)

    python字符串 python转义字符 python字符串运算符 python字符串格式化 python格式化操...

  • 字符串

    字符串的转义字符 字符串格式化 字符串格式化使用操作符百分号实现 字符串格式化符号 对字符串的下面这两个部分操作:...

  • python语法入门二

    元组 字符串 格式化 序列 元组tuple:不可变 字符串:不可变 格式化 序列

  • python 01常用数据类型

    字符串 字符串常用方法 字符串格式化

  • 时间处理工具类

    将秒数格式化为字符串 /*** 将秒数格式化为字符串** @param secs 秒 secFull 分or分钟*...

  • C语言学习笔记

    C/C++格式化字符串说明 C++的格式化字符串经常用作格式化数字的输出、字符串合并和转换等等很多场合。 1. 格...

  • lab9

    格式化字符串漏洞,不过是有点蛇皮的格式化字符串,学到了不少新姿势 很明显的格式化字符串,但同时也可以发现,我们的输...

  • 常用方法

    时间类 时间格式化 时间计算 字符串 字符串截取 数字格式化 axios拦截器

网友评论

      本文标题:字符串格式化

      本文链接:https://www.haomeiwen.com/subject/pdmwfctx.html