六、python基础:字符串常用操作及其内置方法
1、字符串是什么?怎么赋值?:
字符串其实就是用英文输入法下的单引号或者双引号包围的一串字符,里面可以写数字、字母、常用符号、空格都行,只要用单引号(或双引号)包围,它就是字符串。
s = '这是一串字符串'
s = '1111'
s = 'abcd'
s = ''
s = 'abs,de .de [] 。'
单引号或双引号都可以。但如果字符串里面还需要用到引号,那么要看你在它外层是但单引号还是双引号,如果外层是用的单引号,那么内层就用双引号,反过来也一样。
如果你内外层都用了同样的引号,那么程序会报错:invalid syntax,无效的语法
2、字符串常用的操作方法有:索引、切片、格式化方法、类型转换:
2.1、字符串索引相关操作:(2种情况)
2.1.1、通过索引值获取字符串某个位置的字符:
字符串是有序的,也就是它的每个字符都有一个索引值,对应就是它在字符串中的位置。
注意点:
索引值是从0开始的;
每个空格都会占1个位置,它也有对应的索引值;
举例如下:
2.1.2、通过字符获取该字符在字符串中的索引值:
对于字符串s,如果我们想要知道字符’h’在它里面的哪个位置,使用index方法
但是里面有3个l,如果我们使用index(‘l’),它会返回什么?
只会返回它搜索到的第1个’l’的索引值
那我们不想要知道第一个’l‘的索引值,只想要第二个’l’的索引值怎么办?
index(value, start, end)方法可以传入3个参数,第一个是值(必须的),第二个是起始位置,第三个结束位置。
用法如下:
s.index('l') # 获取第一个l在字符串中的索引值,输出是2
s.index('l', 3) # 从字符串的索引值3开始,获取之后的第一个l的索引值
s.index('l', 4) # 从字符串的索引值4开始,获取之后的第一个l的索引值
s.index('l', 3, 5) # 从字符串的索引值3到5之间部分中,获取第一个l的索引值
输出结果如下:
2.2、字符串的切片:
用法:
s = 'hello, world'
s[0] # 索引取值:取出字符串中索引值为0的字符(对应就是第1个字符)
s[3] # 索引取值:取出字符串中索引值为3的字符(对应就是第4个字符)
s[1:4] # 切片取值:取出字符串中索引值1-4的字符
s[0: -1] # 切片取值:取出字符串中索引值0到最后一个的字符
s[:-2] # 切片取值:取出字符串中索引值0到倒数第2个字符
s[:] # 切片取值:取出该字符串的所有字符
输出结果:
注意:
python中无论是字符串切片取值还是列表切片取值,都是顾头不顾尾的,例如上面的s[0: -1],虽说是取0到最后一个字符,但是最后一个字符是没有切到的。
2.3、格式化方法:
一般是%s或者format(),看一篇文章,格式化占位符
2.4、类型转换:
一般用到的是把字符串转成整数或者浮点数,可以进行数值的加减乘除运算。
3、字符串常用方法及其作用:
具体不作演示,自己试试看输出什么结果
s = 'hello, world'
str = 'hello, world'
len(s) #返回字符串的长度
str(s) #将x转换为字符串
chr(s) #返回unicode编码x对应的字符串
ord(s) #返回字符串x对应的unicode编码
hex(s) #返回整数x对应的十六进制数
oct(s) #返回整数x对应的八进制数
str.lower() #返回字符串的副本,全部字符小写
str.upper() #返回字符串的副本,全部大写
str.split(sep = None) #返回一个列表,sep是分隔符
str.count(sub) #计算子字符串sub出现的次数
str.replace(old,new) #用new字符串代替old字符串
str.center(width,fillchar) #使字符串居中显示,fillchar是可选参数,可填充中文空格
str.strip(chars) #去掉char左右两侧的字符
str.join(iter) #将iter变量除最后元素外每个元素后增加一个str字符串
str.capitalize() #将字符串的第一个字母变成大写,其他字母变小写
str.isdigit() #检测字符串是否只由数字组成
4、字符串的运算及判断:
4.1、字符串拼接:使用加号’+‘可以将多个字符串拼接到一起
注意:如果拼接的不是字符串,而是整数或其他类型,会报错(这一点和java以及javascript有区别,它们即使是用整数和字符串拼接,程序会自动把整数转成字符串,接着拼接)
4.2、字符串的复制:使用乘号*
4.3、当我要判断一个字符是否在某个字符串中,如何操作?
使用in进行判断,如果字符串s中存在a,那么用in判断会得到一个True,否则得到False
使用not in 进行判断,就是相反的结果。