博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-字符串处理 str.format()
阅读量:5242 次
发布时间:2019-06-14

本文共 1901 字,大约阅读时间需要 6 分钟。

Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。

另外python还有一个更强大的字符串处理函数 str.format()

 

语法

它通过{}和:来代替%

“映射”示例

通过位置

1
2
3
4
5
6
In [
1
]:
'{0},{1}'
.
format
(
'kzc'
,
18
)
Out[
1
]:
'kzc,18'
In [
2
]:
'{},{}'
.
format
(
'kzc'
,
18
)
Out[
2
]:
'kzc,18'
In [
3
]:
'{1},{0},{1}'
.
format
(
'kzc'
,
18
)
Out[
3
]:
'18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。

通过关键字参数

1
2
In [
5
]:
'{name},{age}'
.
format
(age
=
18
,name
=
'kzc'
)
Out[
5
]:
'kzc,18'

通过对象属性

1
2
3
4
5
class
Person:
def
__init__(
self
,name,age):
self
.name,
self
.age
=
name,age
def
__str__(
self
):
return
'This guy is {self.name},is {self.age} old'
.
format
(
self
=
self
)
1
2
In [
2
]:
str
(Person(
'kzc'
,
18
))
Out[
2
]:
'This guy is kzc,is 18 old'

通过下标

1
2
3
In [
7
]: p
=
[
'kzc'
,
18
]
In [
8
]:
'{0[0]},{0[1]}'
.
format
(p)
Out[
8
]:
'kzc,18'

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。

格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐

填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如

1
2
3
4
5
6
In [
15
]:
'{:>8}'
.
format
(
'189'
)
Out[
15
]:
' 189'
In [
16
]:
'{:0>8}'
.
format
(
'189'
)
Out[
16
]:
'00000189'
In [
17
]:
'{:a>8}'
.
format
(
'189'
)
Out[
17
]:
'aaaaa189'

精度与类型f

精度常跟类型f一起使用

1
2
In [
44
]:
'{:.2f}'
.
format
(
321.33345
)
Out[
44
]:
'321.33'

其中.2表示长度为2的精度,f表示float类型。

其他类型

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

1
2
3
4
5
6
7
8
In [
54
]:
'{:b}'
.
format
(
17
)
Out[
54
]:
'10001'
In [
55
]:
'{:d}'
.
format
(
17
)
Out[
55
]:
'17'
In [
56
]:
'{:o}'
.
format
(
17
)
Out[
56
]:
'21'
In [
57
]:
'{:x}'
.
format
(
17
)
Out[
57
]:
'11'

用,号还能用来做金额的千位分隔符。

1
2
In [
47
]:
'{:,}'
.
format
(
1234567890
)
Out[
47
]:
'1,234,567,890'

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

转载于:https://www.cnblogs.com/lucaq/p/7592358.html

你可能感兴趣的文章
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
FTTB FTTC FTTH FTTO FSA
查看>>
OpenAI Gym
查看>>
stap-prep 需要安装那些内核符号
查看>>
网易杭研后台技术中心的博客 -MYSQL :OOM
查看>>
第二章 数据通信的基础知识 计算机网络笔记 学堂在线 2.1 数据传输系统 2.2 信号...
查看>>
如何解决click事件的重复触发问题
查看>>
2016寒假自学笔记
查看>>
VC++2012编程演练数据结构《21》二叉排序树
查看>>
Easyui NumberBox格式化展示
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
(描述需要改进) Leetcode No.71 **
查看>>
socket初识
查看>>