9、字符串操作
2019-03-05 本文已影响40人
唯老
一、字符串包含
1、说明
字符串就是一串字符,是编程语言中表示文本的数据类型
在Python中可以使用一对双引号或者一对单引号定义一个字符串,但是有些时候会在字符串中相互包含
虽然可以使用
\"
或\'
做字符串的转义,但是实际开发中
- 如果字符串内容需要使用
"
双引号,可以使用单引号'
定义字符串- 如果字符串内容需要使用单引号
'
,可以使用双引号"
定义字符串
2、示例代码
str1 = "hello python"
str2 = "你是'王二狗'么"
str3 = '你是"李小花"么'
print(str1)
print(str2)
print(str3)
二、去掉空格和特殊符号
1、说明
用于移除字符串头尾指定的字符(默认为空格或者换行符)或字符序列
注意:
方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
2、语法格式
- 去掉两边
str.strip([chars])
- 去掉左边
str.lstrip([chars])
- 去掉右边
str.rstrip([chars])
3、参数说明
- chars
可选参数,默认去掉空格 移除字符串头尾指定的字符序列
4、返回值
返回删除 string 字符串末尾的指定字符后生成的新字符串
5、示例代码
- 去掉两边的空格或者换行符,或者指定的
# 去掉两边空格和换行符 In [1]: s = " 花开花落 \t \n" In [2]: s.strip() Out[2]: '花开花落' # 去掉两边指定的字符串 In [3]: s = "abcdef" In [4]: s.strip('f') Out[4]: 'abcde'
- 去掉右边或者左边
In [1]: s = " 花开花落 \t \n" In [7]: s.lstrip() Out[7]: '花开花落 \t \n' In [8]: s.rstrip() Out[8]: ' 花开花落'
三、字符串的分割
1、说明
按着指定的分隔符对字符串进行切片
2、语法格式
str.split(str="", num=string.count(str)).
3、参数
- str
分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 - num
分割次数。默认为 -1, 即分隔所有。
4、返回值
列表
5、示例代码
- 默认切割
In [2]: s = "自古多情空余恨,唯 有 套路 得 人 心" In [3]: l = s.split() In [4]: l Out[4]: ['自古多情空余恨,唯', '有', '套路', '得', '人', '心']
- 按着指定字符进行分割
In [6]: s = "玉-树-临-风-美-少-男-,-揽-镜-自-顾-夜-不-眠" In [7]: l = s.split('-') In [8]: l Out[8]: ['玉', '树', '临', '风', '美', '少', '男', '揽', '镜', '自', '顾', '夜', '不', '眠']
- 指定分割次数
In [9]: s = '我/劝/你/善/良' In [10]: l = s.split('/',2) In [11]: l Out[11]: ['我', '劝', '你/善/良']
四、字符串替换
1、说明
把字符串中的 旧字符串替换成新字符串,如果指定第三个参数max,则替换不超过 max 次
2、语法格式
str.replace(old, new[, count])
3、参数说明
- old
必要参数,将被替换的子字符串。 - new
必要参数,用于替换old子字符串。 - count
可选参数, 替换不超过count 次
4、返回值
返回字替换后生成的新字符串
5、示例代码
- 替换字符串
In [1]: s = "道理我都懂,我就是要作一会" In [2]: new_s = s.replace('我', '你') In [3]: new_s Out[3]: '道理你都懂,你就是要作一会'
- 替换次数
In [5]: s = 'abcdefaaa' In [6]: new_s = s.replace('a', '-', 3) In [7]: new_s Out[7]: '-bcdef--a'
五、字符串查找
1、说明
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
2、语法格式
find(self, sub, start=None, end=None)
# 从右边开始查找
rfind(str, beg=None end=None)
3、参数说明
- str
指定检索的字符串 - beg
开始索引,默认为0。 - end
结束索引,默认为字符串的长度。
4、返回值
包含子字符串返回开始的索引值,否则返回-1
5、实例代码
- 基本查找
In [1]: s = 'Python 了解一下' In [2]: i = s.find('y') In [3]: i Out[3]: 1 In [4]: s.find('te') Out[4]: -1
- 指定位置查找
In [5]: i = s.find('y',1,3) In [6]: i Out[6]: 1 In [7]: i = s.find('n',1,3) In [8]: i Out[8]: -1 In [9]: i = s.find('n',1) In [10]: i Out[10]: 5 # 反向查找 In [11]: i = s.find('n',1,-5) In [12]: i Out[12]: 5
六、判断字符串
1、说明
判断是否以指定的字符串开始或结束
2、语法格式
startswith(prefix, start=None, end=None)
endswith(prefix, start=None, end=None)
3、参数说明
- prefix
指定的字符串。 - start
可选参数,默认0,用于设置字符串检测的起始位置。 - strend
可选参数,默认末尾(字符串的长度),用于设置字符串检测的结束位置
4、返回值
如果检测到字符串则返回True,否则返回False。
5、实例代码
- 示例1
In [1]: s = '总有刁民想害朕' In [2]: b = s.startswith('总有') In [3]: b Out[3]: True
- 示例2
In [1]: s = '人生在世 但求心安!心若安,人世静好' In [2]: s.endswith('静好') Out[2]: True
- 示例3
In [3]: s = 'you can you up no can no bb' # 从索引1位置开始检测 In [4]: s.startswith('y',1) Out[4]: False In [5]: s.startswith('c',4,10) Out[5]: True
七、统计次数
1、说明
统计字符串里某个字符出现的次数
2、语法格式
count(sub[, start[, end]])
3、参数说明
- sub
搜索的子字符串 - start
字符串开始搜索的位置。默认为0。 - end
字符串中结束搜索的位置。默认到末尾。
4、返回值
字符串在字符串中出现的次数
5、实例代码
- 示例1
In [12]: s = 'you can you up no can no bb' In [13]: s.count('c') Out[13]: 2 In [14]: s.count('you') Out[14]: 2 In [15]: s.count('bb') Out[15]: 1
- 示例2
In [16]: s.count('bb',-1) Out[16]: 0 In [17]: s.count('you',10,-1) Out[17]: 0
八、字符大小写转化
1、说明
字符串中的小写字母转为大写字母或者将字符串的大写转化成小写。中文无效。通常用在对外部输入的字符串转化之后进行比较
2、语法格式
upper()
lower()
4、返回值
返回小写字母转为大写字母的字符串
5、实例代码
- 小写转大写
In [18]: s = 'abc' In [19]: s.upper() Out[19]: 'ABC'
- 大写转小写
In [20]: name = 'Wener' In [21]: name.lower() Out[21]: 'wener'
九、其它
1、判断
方法名 | 返回值 | 说明 |
---|---|---|
isalnum() | bool | 是否全是字母和数字 |
isalpha() | bool | 是否全是数字 |
isdigit() | bool | 是否全是数字 |
isspace() | bool | 是否是空白字符,并至少有一个字符 |
islower() | bool | 字母是否全是小写 |
isupper() | bool | 字母是否全是大写 |
istitle() | bool | 是否是首字母大写的 |