设为首页 加入收藏

TOP

Python字符串格式化与F-String语法(一)
2023-07-25 21:28:25 】 浏览:97
Tags:Python 符串格 F-String 语法

字符串格式化

Python的内置方法和标准库所支持的字符串格式化方法一共有以下4种:

  • % 操作符
  • format 内置函数
  • f-string 语法
  • Template 标准库

方式一:% 操作符

其格式说明符和 C 语言常用的格式化方法一致。

"""
%[sign][width][.precision][long][type]
"""
标志 描述 备注
sign 对齐标志 + 结果右对齐,输出符号(正号或负号, 符号占一个宽度单位)
- 结果左对齐,右边填空格,正号不输出,输出负号
(空格)结果右对齐,左边填空格,正号不输出,输出负号
width 输出内容的最小宽度,如果内容不够,填充空格
.precision 显示精度(针对浮点型)
long 长度格式 h 短整型
l 长整型
type 格式化后的目标值显示类型 %c 单个字符
%d 十进制有符号整数
%u 十进制无符号整数
%e 科学计数法, 使用小写"e"
%E 科学计数法, 使用大写"E"
%f 浮点数
%g 使用%e或%f中较短的一个
%G 使用%E或%f中较短的一个
%i 带符号整数,同 %d
%o 无符号以八进制表示的整数
%s 字符串
%x 无符号的十六进制表示的正数,字母以小写 abcdef 表示
%X 无符号的十六进制表示的正数,字母以大写 ABCDEF 表示
%% 一个'%'符号

按位置依次对应

参数需要和格式化的顺序、位置一一对应

# 格式化示例
>>> "%s" % 22
'22'

# 浮点数示例
>>> "%5.2f" % 22.245
'22.25'

# 右对齐显示符号
>>> "%+5d" % 22
'  +22'
>>> "%+5d" % -22
'  -22'

# 拼接
>>> "%d个%s" % (22, "鸡蛋")
'22个鸡蛋'

>>> k = 'name'
>>> v = 'Jack'
>>> "%s = %s" % (k, v)
'name = Jack'

按名称索引

通过字典方式格式化,打破了位置带来的限制与困扰

>>> k = 'name'
>>> v = 'Jack'
>>> "%(key)s = %(value)s" % {'key': k, 'value': v}
'name = Jack'

相信很多熟悉C语言的朋友能很快了解这一点的使用,但是这个已经是Python中不提倡的用法了,因此本文不过多介绍!


方式二:format 内置函数

格式说明符如下:

format(value, 'specifier') -> str
str(value).format('specifier') -> str
"""
specifier 格式如下:
[[fill]align][sign][#][0][width][,|_][.precision][type]
"""

格式描述符标志:

标志 描述 备注
fill 填充字符,默认填充为空格
align 对齐标志 < 左对齐(默认)
> 右对齐
^ 居中对齐
= 强制将填充内容放置在符号(如果有)之后但位于数字之前, 仅适用于数字参数
sign 符号标志 + 负数前加负号,正数前加正号
- 负数前加负号,正数前不加任何符号(默认)
(空格)负数前加负号,正数前加一个空格
# 可选标志:# 选项,适用于数字参数,同时仅适用于目标格式为 2, 8, 16 进制的数字,会在输出的数字前添加 0b, 0o, 0x 前缀 #b 二进制
#o 八进制
#x 十六进制
0 可选标志:0 选项,如果未给出明确的对齐方式, 可以在宽度字段前加上一个 0 字符。 这相当于填充字符 0, 对齐方式为 =
width 最终展示的长度,如果内容不够,默认填充空格,或者由 fill 指定
, or _ 数字间隔符
.precision 显示精度 - 对于由 f/e 或 F/E 格式化的浮点数,该选项指定小数点后的位数
- 对于有 g 或 G 格式化的浮点数,表示小数点前后 一共 多少位
- 对于非整数类型的参数,该选项指定字段最大宽度
type 格式化后的目标值显示类型

目标值显示类型(type标志):

类型 输出描述
d 整型的十进制
b 整型的二进制
o 整型的八进制
x 整型的十六进制(字母小写表示)
X 整型的十六进制(字母大写表示)
f, F 浮点型表示
e 科学计数法: [-]m.dddddde±xx,默认精度为 6
E 科学计数法: [-]m.ddddddE±xx
g, G 一般形式, 受 precision 选项影响
n 入参为整数时,类似 d, 会使用当前区域设置插入适当的数字分隔符
入参为浮点数时,和 g 相同, 会使用当前区域设置插入适当的数字分隔符
% 百分比展示,入参乘100,追加百分号,默认精度为6
s 字符串或任何其他类型的对象,调用对象的 __str__() 方法
c 单个字符,在输出前将整数转化成对应的 unicode 字符

按位置依次对应

a = 3.141592654
d = {'a': a}
>>> "{:0<6.2f}   {:0<7.3f}".format(a, a)
'3.1400   3.14200'

按名称索引

>>> "{val:0<6.2f}   {val:0<7.3f}".format(val=a)
'3.1400   3.14200'

>>> "{val[a]:0<6.2f}   {val[a]:0<7.3f}".format(val=d)
'3.1400   3.14200'

>>> class Values:
...     a = 3.141592654
... 
>>> "{val.a:0<6.2f}   {val.a:0<7.3f}".format(val=Values)
'3.1400   3.14200'

按参数下标索引

>>> "{0:0<6.2f}   {0:0<7.3f}".format(a)
'3.1400   3.14200'

>>> "{0[a]:0<6.2f}   {0[a]:0<7.3f}".format(d)
'3.1400   3.14200'

方式三:f-string语法

f-string语法是Python3.6推出的,是当前备受推荐的字符串格式化方法,该部分我们放到本文的第二大部分讲。


方式四:Template 标准库

>>> from string impo
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python控制语句/循环语句 下一篇python模拟股票的数据分析

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目