摘要:这篇博文主要阐述有关文本操作的一些问题,例如拆分字符串的开头结尾匹配、去掉两边空格、搜索和替换、分离和拼接等。
1. 字符串的定义
字符串类型是 Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。
a、b、c三个变量都分别被用三种方式赋值,但是这三种方式所赋值类型都为str字符串类型。
三重引号
作用一:进行多行注释
Python中单行注释是#,多行注释的时候每行都写一个#,或者采用连续的三个双引号。
作用二:定义多行字符串
为避免使用转义换行符 \n,通常会用在定义SQL语句的表达式中没有变量的时候使用.
字符串常用的转义符号如下:
\n:换行
\t:一个tab键
\":显示出来是"
\':显示出来是'
例如,要求我们打印 guido’s 和 “hello guido’s python”。(注意这里的’和""要显示出来)
再例如,要求我们输出hello python。第一行输出格式是hello换行python,第二行输出格式hello tab(即四个空格) python。
补充:《廖雪峰教程》练习
结果输出:
删除字符串:
字符串是不可变的,只能通过赋一个空字符串或者使用 del 语句来清空或者删除一个字符串。但是没有必要显式的删除字符串。定义这个字符串的代码结束时会自动释放这些字符串。
2. 字符串的特性
索引
s = 'hello' //索引:0,1,2,3,4 索引是从0开始的
print(s[0]) //取到的是第一个字符h
print(s[4]) //取到的是第五个字符o
print(s[-1]) //取到的是字符串的最后一个字符o
执行效果如下:
切片
s = 'abcdefg'
#s[start:end:step] 从start开始,到end-1结束,步长为step(默认是1)
print(s[0:3]) //输出abc
print(s[0:6:2]) //输出ace (从a开始,到f结束,每次步长为2。“a c e “)
执行结果如下:
print(s[:]) //显示所有字符
print(s[:3]) //显示前3个字符
print(s[::-1]) //字符串倒序输出
print(s[1:]) //除了第一个字符之外,其他的全部显示
print(s*10) //重复10次
print('hello '+'python') //连接
成员操作符
print('he' in s)
print('abc' in s)
print('he' not in s)
3. 开头和结尾匹配
filename = 'sys.log'
filename.endswith('.log') //匹配结尾
filename.startswith('sys') //匹配开头
4. 字符串的数据清洗
可以在字符串的开始、结尾或者中间位置去掉不需要的字符,比如说空格符。譬如有些用户输入自己的用户名时会带空格。
strip()方法可以用来从字符串的开始和结尾处去掉字符。
lstrip() 和 rstrip()可以分别从左或从右侧开始执行去除字符的操作。
默认情况下这些方法去除的是空格符,但也可以指定其他的字符。
replace()字符串替换
replace()方法直接全部替换。
5.字符串的位置调整
res = 'hello'
res.center(50,'*') //res的值以居中格式输出,总共占据50格,剩余用'*'代替
res.rjust(width) //字符串做对齐且长度为指定宽度
res.ljust(width) //字符串右对齐且长度为指定宽度
是不是要比c语言里面控制格式输出方便多了~~~
5. 搜索和统计
find(str,beg,end) //检测str是否包含在string中,返回索引
index(str,beg,end) //检测str是否包含在string中,返回索引,否则抛出异常
count(str,start,end) //检测str在string中出现的次数
这里rs里面有python和PYTHON,find()方法帮我们查找的时候区分了大小写,匹配到要搜索的字符串后返回结果第一个字符的索引号。
那么如果一个字符串中,要搜索的字符串出现过很多次,如何查找呢。可以看到这里出了一个错误,lfind()这个方法当然没有啦,因为find()方法就是从左边开始搜索的;如果想从右边开始搜索的话,用rfind()方法即可。可以看到,两种方法返回的索引号是不一样的,就是因为一个是从左边开始所有,另一个是从右边开始搜索。
可以看到,==index()和find()的区别在于当str没有在string中时,index()会抛出异常,find()会返回-1,但并没有抛出异常。==根据需要选择所需函数。
count()方法统计字符在原字符串中出现的次数。
6. 分离和拼接
split(' ') //以‘ ’内字符为分隔符切片string,默认是空格
splitlines() //以‘\n’一行为分隔符切片string
join //以‘ ’内字符为连接符将多个字符串拼接成一个字符串
split()方法可以帮助我们处理分隔符,用’.‘将ip值分离出来。
用’-‘也可以将date值分离出来,但如果用’*’,输出结果为未分离前的date值,因为date值里面没有这个字符,所以无法分离。
也可以进行反操作,将分离开的字符拼接起来。
7.字符串的判断与转换
其中:
title: 标题需要每一个首字母大写,e.g. Hello Python
space: 空格指的是广义的空格, e.g: \n, \t
8.字符串其他内置方法
cmp() //根据字符串的 ASCII 码值进行比较(py3取消)
len() //返回字符串的字符数 max() and min() //返回最大或者最小的字符,(按照 ASCII 码值排列)
enumerate() //枚举对象同时列出数据和数据下标
zip() //将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表