Python入门教程之字符串常用方法和格式化字符串

栏目: Python · 发布时间: 5年前

内容简介:Python中的字符串同样适用标准的序列操作(索引,分片,乘法,成员判断,求长度,取最小值和最大值),但因为字符串是不可变的,因此字符串不支持分片赋值。1 s='http://www.baidu.com'2 s[-3:]='aaa'

Python中的字符串同样适用标准的序列操作(索引,分片,乘法,成员判断,求长度,取最小值和最大值),但因为字符串是不可变的,因此字符串不支持分片赋值。

1 s='http://www.baidu.com'

2 s[-3:]='aaa'

3 print(s)

输出结果:

1 s[-3:]='aaa'

2 TypeError: 'str' object does not support item assignment

可以看出抛出的错误信息,字符串不允许标记内部项。

但我们可以在字符串中用一个百分比符号%s标记出一个占位符,它表示我们将要在该位置插入转换值的位置。s将会被格式化为字符串,如果被转换的对象不是字符串,则会将其转换为字符串。

模板字符串

除了用%s插入转换值外,还可以使用substitute模板方法,用传递进来的关键字参数替换字符串中的关键字。

1 from  string  import Template

2 s=Template('$x,glorious $b')

3 s=s.substitute(x='slurm',b='haha')

4 print(s)

输出结果:

slurm,glorious haha

我们看到$s位置被替换为slurm,$b位置被替换为haha

如果被替换的位置是单词的一部分,可以将其用{}括起来

1 from  string  import Template

2 s=Template('${x}glorious $b')

3 s=s.substitute(x='slurm',b='haha')

4 print

输出结果:

slurmglorious haha

使用字典变量提供值得/名称对替换

1 from  string  import Template

2 s=Template('$name  come from  $county ')

3 d={}

4 d['name']='zhangsan'5 d['county']='china'6 s=s.substitute(d)

7 print(s)

输出结果:

zhangsan  come from  china 

格式化输出多个参数

1 s='%s come from %s'%('zhangsan','china')

2 print(s)

输出结果:

1 zhangsan come from china

字符串格式化转换类型

转换类型 解释
d,i 带符号的十进制整数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制
e 科学计数法表示的浮点数(小写)
E 科学计数法表示浮点数(大写)
f.F 十进制浮点数
c 单字符
r 字符串(用repr转换任意 Python 对象)
s 字符串(用str转换任意python对象)

字符串与utf8互转

1 s='你好'

2 print(s.encode('utf8'))

3 a=s.encode('utf8')

4 print(a.decode('utf8'))

输出结果:

1 b'\xe4\xbd\xa0\xe5\xa5\xbd'

2 你好

字符串的宽度和精度

宽度是指转换后的值所保留的最小字符个数,精度则是结果中应该包含的小数位数

例如 输出宽度为10的pi的值

1 from math import pi

2 p='%10f'%pi

3 for k, i in  enumerate(p) : #使用enumerate函数打印序列

4    print('序列%s'%k,i)

 1 序列0  
 2 序列1  
 3 序列2 3 4 序列3 .
 5 序列4 1 6 序列5 4 7 序列6 1 8 序列7 5 9 序列8 910 序列9 3 

打印精度为2的pi的值

1 from math import pi

2 p='%.2f'%pi

3 print(p)

输出结果:

3.14

打印宽度为10,精度为2的pi的值

1 from math import pi

2 p='%10.2f'%pi

3 for k,i in enumerate(p):

4    print('序列%s 打印值%s'%(k,i))

打印结果:

1 序列0 打印值

2 序列1 打印值

3 序列2 打印值

4 序列3 打印值

5 序列4 打印值

6 序列5 打印值

7 序列6 打印值3

8 序列7 打印值.

9 序列8 打印值1

10 序列9 打印值4

我们看到,当整数部分没有值时,将以空' ' 代替。

1 print('%+5d'%10)

2 print('%+5d'%-10)

输出:

1  +10

2  -10

使用 '-'用来左对齐数值,用'+'表示不管是整数还是复数都会标识出符号

使用字符串格式化,使我们的代码看着更简洁

1 width=input('>>输入宽度:')

2 price_with=10

3 item_width=int(width)-price_with

4 header_format='%-*s%*s'

5 format='%-*s%*.2f'

6 print('='*int(width))

7 print(header_format%(item_width,'item',price_with,'price'))

8 print('_'*int(width))

9 print(format%(item_width,'apple',price_with,0.4))

10 print(format%(item_width,'Pears',price_with,0.5))

输出结果:

>>输入宽度:30

==============================

item                    price

______________________________

apple                    0.40

Pears                    0.50   

字符串的常用方法:

方法名 解释 案例
find 在一个长的字符串中查找字符串,返回字符串所在位置的最左端的索引,如果没有则返回-1
str='hello world'
print(str.find('world'))
输出:6
str='hello world'
print(str.find('worldd'))
输出:-1
join 用来连接列表中的字符串
l=['1','2','3','4','5','6']
sep='+'
ret=sep.join(l)
print(ret)
输出:
1+2+3+4+5+6
lower 返回字符串的小写母版(忽略用户大小写时使用,例如,用户输入用户名含有大写字母,输入后将其转换为小写并与数据库中的保存字符匹配)
str='HELLO WORLD'
print(str.lower())
输出:
hello world
replace 返回字符串中所有被匹配项被替换后的所得到的新字符串
str='HELLO WORLD'
print(str.lower().replace('world','python'))
输出:
hello python
split 按某个分隔符将字符串分割成序列,默认以空格符分割
str='1+2+3+4'
print(str.split('+'))
输出结果:
['1', '2', '3', '4']

str='HELLO WORLD'
print(str.split())
输出结果:
['HELLO', 'WORLD']
strip 去除字符串两边的空格
str='  HELLO WORLD   '
print(str.strip())
输出结果:
HELLO WORLD
maketrans 创建字符映射的转换表,接收两个参数,第一个参数是字符串,表示要转换的字符串,第二个参数也是字符串表示转换的目标(两个参数是映射关系(一一对映),因此长度必须相同)
intab = "el"
outtab = "EL"
trantab = str.maketrans(intab, outtab)
str = "hello world"
print (str.translate(trantab))

输出:
hELLo worLd

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/154608.htm


以上所述就是小编给大家介绍的《Python入门教程之字符串常用方法和格式化字符串》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

用户力:需求驱动的产品、运营和商业模式

用户力:需求驱动的产品、运营和商业模式

郝志中 / 机械工业出版社 / 2015-11-1 / 59.00

《用户力:需求驱动的产品、运营和商业模式》从用户需求角度深刻阐释了互联网产品设计、网络运营、商业模式构建的本质与方法论! 本书以“用户需求”为主线,先用逆向思维进行倒推,从本质的角度分析了用户的需求是如何驱动企业的产品设计、网络运营和商业模式构建的,将这三个重要部分进行了系统性和结构化的串联,然后用顺向思维进行铺陈,从实践和方法论的角度总结了企业究竟应该如围绕用户的真实需求来进行产品设计、网......一起来看看 《用户力:需求驱动的产品、运营和商业模式》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具