全面解读python中对字符串(str)的操作

灰色框里面的方法就是所有字符串处理的方法

全面解读python中对字符串(str)的操作_第1张图片
字符串能使用的所有方法.png

1、strip: 去除首尾的空白符

s = '\n   hello word \n\t\r'
# 左右都去除
all = s.strip()
all = 'hello word'
# 左去除
left = s.lstrip()
left = 'hello word \n\t\r'
# 右去除
right = s.rstrip()
right = '\n hello word'
python对字符串s的处理是一个set,而不是一个固定顺序的字符串。也就是说,是把s拆开成由单个字母组成的set来看的,如果被strip()的字符串在左右边包含任意一个该set中的字符,都会被strip()掉。
s = 'hello word'
s.strip('hello')
s.strip('helo')
s.strip('hloe')
...(这是set无序,不重复性质)
得到的结果都一样--->' word'

2、字符串相加:就是使用‘+’由于很简单就不多说了。

3、字符串的查询

使用index(),find()查询,找到了返回下标。find()找不到不会报错,index()找不到会报错。

s = 'prince with rose'
>>> s.index('p')  
>>> s.find('p')
>>> 0  # 返回的是该元素在字符串中的下标

>>>s.index('d')
>>>ValueError: substring not find

>>> s.find('d')
>>> -1  # 如果找不到返回'-1'

使用in / not in, 返回布尔值

# 存在时的情况
>>> 'prince' in s
>>> True
# 不存在时候的情况
>>> 'hello' in s
>>> False

4、字符串的比较

str.cmp():比较两个对象,并根据结果返回一个整数。X< Y,返回值是负数 ,X>Y 返回的值为正数,X=Y,返回值为0。

python3已经没有该方法,官方文档是这么写的:

The cmp() function should be treated as gone, and the cmp() special method is no longer supported. Use lt() for sorting, eq() with hash(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
大意就是不再支持cmp()函数,如果你真的需要cmp()函数,你可以用表达式(a > b) - (a < b)代替cmp(a,b)

# 数字大小很好理解
>>> a= '100'
>>> b= '80'
>>> cmp(a,b)
>>>1  
# 字符串的大小,可以理解为26个字母越排在后面的越大
>>> a= 'abc'
>>> b= 'efg'
>>> cmp(a,b)
>>> -1
#  相等的情况
>>> cmp(a,a)
>>> 0

5、字符串的长度

使用len()这个方法,s.len()就可以获取到字符串的长度,返回的是一个整数。

6、字符串的大小写(upper,lower)

up和low的比较级单词

s = 'Hey gUys '
# 变大
u = s.upper()
u = 'HEY GUYS'
# 变小
l = s.lower()
l = 'hey guys'

s.swapcase() # 大小写互换 
>>> 'hEY GuYS'

s.capitalize() # 首字母大写 
>>> 'Hey guys'
# 带有"_"的可以把连接的两个单词的首字母
s = 'hey_guys'
>>> s.capitalize()
>>> 'Hey_Guys'

7、字符串的测试、判断函数,这些函数返回的都是bool值

S.startswith() # 是否以开头 
S.endswith()   # 以结尾 
S.isalnum()    # 是否全是字母和数字,并至少有一个字符 
S.isalpha()    # 是否全是字母,并至少有一个字符 
S.isdigit()    # 是否全是数字,并至少有一个字符 
S.isspace()    # 是否全是空白字符,并至少有一个字符 
S.islower()    # S中的字母是否全是小写 
S.isupper()    # S中的字母是否便是大写 
S.istitle()    # S是否是首字母大写的

8、字符串切片

str = '0123456789′
str[0:3]    #截取第一位到第三位的字符
str[:]      #截取字符串的全部字符
str[6:]     #截取第七个字符到结尾
str[:-3]    #截取从头开始到倒数第三个字符之前
str[2]      #截取第三个字符
str[-1]     #截取倒数第一个字符
str[::-1]   #创造一个与原字符串顺序相反的字符串
str[-3:-1]  #截取倒数第三位与倒数第一位之前的字符
str[-3:]    #截取倒数第三位到结尾
str[:-5:-3] #逆序截取,截取倒数第五位数与倒数第三位数之间

9、字符串替换

python 字符串替换可以用2种方法实现:
1是用字符串本身的方法。
2用正则来替换字符串

#1.用字符串本身的replace方法
a = 'hello world'
a.replace('world','python')
>>> a 
>>> hello python

2.用正则表达式来完成替换:
import re
 b = str.sub(r'word$','python',a)  # 至少传三个参数:r'', 替换内容,被替换的字符串
>>> b
>>> hello python

你可能感兴趣的:(全面解读python中对字符串(str)的操作)