第7章 Python字符串处理

字符串定义

字符串用来表示一串字符,Python中字符串可以用单引号、双引号和三引号定义。注意,Python中字符串是不可变对象,不能被修改。

使用单引号定义一个字符串

s='好好学习,天天向上'

使用双引号定义个字符串

s="柔弱胜刚强"

使用三引号定义字符串,使用print打印时会保留字符串中的格式

s="""
面朝大海
春暖花开
     -- 海子
"""
print(s)

或者三个单引号

s="""
面朝大海
春暖花开
     -- 海子
"""
print(s)

索引和切片

定义一个字符串

s="天生我材必有用" 

下标从零开始,选取第一个字符

s[0] #返回"天"

负数是从右往左数,-1表示最后一个字符

s[-1] #返回"用"

使用冒号可以选取一段字符串,从2个到第4个

s[1:4]#返回'生我材'

省略冒号前面的数字,表示从第一个字符开始

s[:4]#返回'天生我材'

省略冒号后面的数字,表示取到最后一个字符

s[4:]#返回'必有用'
s[-4:]#返回后四个字符

冒号前后数字都省略,表示选取全部字符

s[:]#返回'天生我材必有用'

切片可以指定步长,指定步长为2,隔一个字符取一个

s[1:6:2] #返回'生材有'

步长可以为负数,表示倒着取,倒叙排列

s[::-1] #返回'用有必材我生天'

字符串是不可变对象,不能像列表一样对字符串切片进行赋值

s[0]="地" #错误:字符串不能被修改

字符串加法

两个字符串相加,返回拼接好的字符串

'a'+"b" #返回'ab'

字符串乘法

字符串与整数的乘法,返回重复若干次数的字符串

返回20个星号

'*'*20 #返回'********************'

返回20个ab

'ab'*20 #返回'abababababababababababababababababababab'

in 和not in

a在字符串abc中,返回True

'a' in  'abc' #返回True

d不在字符串abc中,返回False

'd' in  'abc' #返回False

a在字符串中,返回False

'a' not in  'abc' #返回False

d不在字符串中,返回True

'd' not in  'abc' #返回True

len长度

返回字符串的长度,一个英文算一个字符,一个汉字也是一个字符

len("abc") #返回3
len('天生我材必有用') #返回7

index查找

定位字符串,返回字符串首次出现的索引,找不到会报错

s='abcad'
s.index('a')#返回0

找不到报错

s='abcd'
s.index('f') #找不到报错

find查找

查找字符串,返回字符串首次出现的位置,找不到返回-1,不会报错

定义一个字符串

s="生命在于运动,坚持每天运动"

查找"运动",返回首次出现的下标

s.find('运动') #返回4

查找”躺平”,找不到时返回-1

s.find('躺平')#返回-1

count统计次数

返回字符串出现的次数

定义一个字符串

s="寻寻觅觅,冷冷清清"

统计字符串“冷"出现的次数

s.count('冷') #返回2

统计字符串“冷冷”出现的次数

s.count('冷冷') #返回1

统计字符串“暖暖”出现的次数

s.count('暖暖') #返回0

replace 替换

替换字符串,用第二个参数替换第一个参数,不改变原字符串,返回新的字符串,找不到原样返回。

定义一个字符串

s="不识庐山真面目,只缘身在此山中,庐山真美"

用黄山替换所有的庐山,第一个和第二个庐山都被替换了。

s.replace('庐山','黄山')#返回'不识黄山真面目,只缘身在此山中,黄山真美'

找不到就不做处理,用黄山替换泰山

s.replace('泰山','黄山') #返回'不识庐山真面目,只缘身在此山中,庐山真美'

split 分割字符串

分割字符串,返回一个字符串列表。

默认用空格来分割字符串

"小桥 流水 人家".split() #返回['小桥', '流水', '人家']

使用顿号来分割字符串

"小桥、流水、人家".split('、') #返回 ['小桥', '流水', '人家']

使用换行符来分隔字符串

"""
小桥
流水
人家
""".split('\n') #返回['', '小桥', '流水', '人家', '']

strip 处理空格

strip函数用来删除字符串前后的空格,不会处理字符串中间的空格。

首先定义一个带有前后空格的字符串

s="   细节 决定 成败    "

strip函数删除前后空格

s.strip()  #返回'细节 决定 成败'

lstrip只删除左侧空格,l是left的首字母

s.lstrip() #返回'细节 决定 成败    '

rstrip只删除右侧空格,r是right的首字母

s.rstrip() #返回'   细节 决定 成败'

大小转换

upper函数,将小写转换成大写

'NiHao'.upper() #返回'NIHAO'

lower函数,将大写转换成小写

'NiHao'.lower() #'nihao'

title单词首字母大写,其它小写

'abc ABC'.title()

str字符串转换

其它类型转为字符串,数字转字符串

str(2.718) #'2.718'

join 连接

将多个字符串连接成一个字符串,并可以指定连接符。

定义一个列表

l=['a','b','c']

使用逗号连接

','.join(l)#返回'a,b,c'

使用下划线连接

'_'.join(l)  #返回'a_b_c'

使用空字符串’'连接

''.join(l)  #返回'abc'

注意:列表内必须都是字符串类型,否则报错,定义一个列表

l=['a','b','c',1,2]

直接join会报错,因为有数字类型

','.join(l) #报错,li中有数字类型

使用列表推导式+str函数把每个元素转为字符串类型,再用逗号连接

','.join([str(i) for i in l]) #返回'a,b,c,1,2'

f字符串

f字符串就是在字符串前面加一个小写的f,可以方便地对字符串进行格式化

定义一个数字

a=3.1415

定义一个f字符串,使用大括号,中间包含变量

f'字符串:{a}' #返回'字符串:3.1415'

变量后面加一个冒号,冒号后面f表示浮点类型,d表示整数类型

f'字符串:{a:f}'#返回 '字符串:  3.141500'

指定字符串的宽度为10,不足部分填充空格,默认右对齐

f'字符串:{a:10f}'#返回 '字符串:  3.141500'

大于号表示右对齐,是默认值

f'字符串:{a:>10f}' #返回'字符串:  3.141500'

小于号表示左对齐

f'字符串:{a:<10f}' # 返回 '字符串:3.141500  '

尖冒号表示居中对齐

f'字符串:{a:^10f}' # 返回 '字符串: 3.141500 '

用星号填充空白

f'字符串:{a:*^10d}' #返回'字符串:*3.141500*'

保留两位小数

f'字符串:{a:.2f}' #返回 '字符串:3.14'

保留两位小数,显示为百分数

f'{a:.2%}' #返回'314.15%'

1-99,不足两位数填充在左侧填充0

for i in np.arange(1,100):
    print(f'{i:0>2d}')

format格式化

format与f字符串的格式基本一致,f字符串更便捷一点。

用大括号占位,括号中的元素一一对应。

'{}+{}={}'.format(1,2,1+2) #返回'1+2=3'

指定占位变量

'{a}'.format(a=100)#返回'100'

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值