今天来说说【字符串对象】,之前我们在数据类型时就已经接触了字符串这个概念了。
字符串:【包含在一对单引号、双引号或者三引号中的一串字符】
str_name = str(”字符串“)
说的通俗些,字符串就是我们肉眼可以识别的,具有特殊含义的字符组成串。接下来呢,我来讲解一些字符串的常有方法。
首先,我先简单的创建一个字符串对象吧。
jack = "he is a cool boy"
1、字符串首字母大写【capitalize】
>>>jack.capitalize() #让字符串首字母大写(规范化每段的第一句话)
>>>"He is a cool boy"
2、字符串居中【center】
>>>jack.center(width,[fillchar]) #fillchar默认是空格,可以自定义
>>>' he is a cool boy '
3、左对齐【ljust】
>>>jack.ljust() #fillchar默认是空格,可以自定义
>>>"he is a cool boy"
4、右对齐【rjust】
>>>jack.rjust() #fillchar默认是空格,可以自定义
>>>”he is a cool boy“
5、统计字符或者字符串出现的次数【count】
a = ”1111333444555“
>>>a.count("1")
>>>4
6、判断字符串是否以XXX开头【startswith】
a = "victory"
>>>a.startswith("v")
>>>true
7、判断字符串是否以XXX结尾【endswith】
a = "defeat"
>>>a.endswith("a")
>>>False
8、查看字符串长度【len】
a = "123456789"
>>>len(a)
>>>9
9、查找字符或者字符串在字符串中第一次出现的位置【index】
a = "today is thursday" #如果字符或者字符串不存在,则抛出异常
>>>a.index("y")
>>>4
10、查找字符或者字符串在字符串中第一次出现的位置【find】
a = "this is a beautiful day"
>>>a.find("is") #如果字符或者字符串不存在,则抛出异常
>>>2
11、字符串转换为字节【encode】
a = "123456"
>>>a.encode()
>>>b'123456'
12、将字节转换为字符串【decode】
b'abcd'
>>>b'abcd.decode()
>>>'abcd'
13、格式化字符串【format】
a = “1234”
>>>a.format()
>>>'1234'
14、判断是否都是小写字母【islower】
a = "Style"
>>>a.islower()
>>>False
15、判断是否都是大写字母【isupper】
a = "WHAT"
>>>a.lsupper
>>>True
16、判断字符串是否是标题【istitle】
a = "A Good Day "
>>>a.istitle()
>>>True
16、判断是不是数字【isdigt】
a = "12345"
>>>a.isdigt()
>>>True
17、判断是否都由有效符号【isalnum】
a = "good day"
>>>a.isalnum()
>>>False
18、 判断是否都由字母组成【islpha】
a = "123ABC"
>>>a.islpha()
>>>False
19、将字符串转换为标题格式【title】
a = "today is good day"
>>>a.title9)
>>>'Today Is Good Day'
20、 将字符串转换为大写字母【lower】
a = "abcd"
>>>a.lower()
>>>'ABCD'
21、按照特定的符号,将字符串切割,返回一个列表【split】
a = "123cABD"
>>>a.split("c")
>>>['123','ABD']
22、清除字符串两侧的空格【strip】
a = " 我很开心 "
>>>a.strip()
>>>'我很开心'
23、清除左侧空格【lstrip】
a = " Happy"
>>>a.istrip()
>>>'Happy'
24、清除右侧空格【rstrip】
a = "Sad "
>>>a.rstrip()
>>>'Sad'
25、替换对应的字符串【replace(“原字符串”,“新值”)】
a = "今天是星期一"
>>>a.replace("一",“天”)
>>>‘今天是星期天’
字符串的常见方法我大概就说这么多吧,如果还有其他的,你可以在帮助列表查询使用就可以了。
接下来我们说说一个东西——————【切片】
切片是什么呢?可以这么说,切片就是Python提供给大家用来切割可迭代对象(容器),只要条件表达式得当,可以通过单词或多次切片操作实现任意目标的切取。
首先要先了解下索引这个东西,索引分为正索引和负索引,这里还是举个例子来讲解吧。
a = “0,1,2,3,4,5,6,7,8,9”
正索引 0 1 2 3 4 5 6 7 8 9 (从左往右,从0开始)
a 0 1 2 3 4 5 6 7 8 9
负索引 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 (从右往左,从-1开始)
接下来说说切片,一个完整的切片的表达式包含两个“:”,用于分割三个参数(Start_index、end_index、step),当只有一个":"时,默认step为1;当一个“:”也没有时,start_index=end_index,表示切取start_指定的那个参数。
object[start_index:end_index:step] #切片的基本表达式
我先说说这三个参数吧。
【 step 】: 步长,取正负数都可以,其绝对值大小决定了切取数据时的“步长”,正负号决定了切取的方向,正表示【从左往右取值】,负表示【从右往左取值】,step省略时,默认为1,即从左往右以步长1取值。这里要重点强调,【切取的方向很重要!!!】
【 start_index】:起始索引。当省略时,表示从对象”端点“开始取值,至于是从”起点“还是从”终点“,都是由step的正负决定,为正则从左到右直到终点,为负则从右到左直到起点。
【 end_index 】:终止索引。当省略时,表示一直取到数据”端点,同样由step参数的正负决定,为正时直到终点,为负时直到”起点“
概念说完了,那我依旧举例子来了解切片的性质。
>>>a = "1,2,3,4,5,6,a,b,c"
1、切取单个元素
>>>a[1]
>>>2
>>>a[-3]
>>>a
#当索引只有一个数时,表示切取某一个元素。
2、切取完整对象
>>>a[:] #从左往右切
>>>[1,2,3,4,5,6,a,b,c]
>>>a[::] #同上
>>>a[::-1] #从右往左切
>>>[c,b,a,6,5,4,3,2,1]
3、索引全为正时
>>>a[1:3] #step默认为1,即从左往右取值
>>>[2,3,4]
>>>a[1:3:-1]
>>>[]
#索引值为正,取从第1位到第3位,但是step为-1,代表从右往左取值,两者互相矛盾,所以为空。
>>>a[4:1]
>>>[]
#同样为空,step默认为1,从左往右取值,但是索引却是从右往左
>>>a[:3]
>>>[1,2,3,4]
#step默认为1,从左往右取值,端点为0,所以从起点开始。
>>>a[:3:-1]
>>>[c,b,a]
#step默认为-1,从右往左取值,start_index省略,表示从端点开始,此时这里的端点时”终点“,从c开始。
>>>a[3:]
>>>[3,4,5,6,a,b,c]
#同样为空,step默认为1,从左往右取值,但是索引却是从右往左
4、多层切片
a = ”0,1,2,3,4,5,6,7“
>>>a[:6][2:5][-1:]
>>>[4]
相当于
a[:6] = [0,1,2,3,4,5]
a[:6][2:5] = [2,3,4]
a[:]6[2:5][-1:] = [4]
5、取偶数位置
a = "0,1,2,3,4,5,6"
>>>b = a[::2]
>>>[0,2,4,6]
6、取奇数位置
a = "0,1,2,3,4,5,6,7"
>>>b = "1::2"
>>>[1,3,5,7]
7、修改单个元素
a = ”1,2,3,4,5“
>>>a[3] =['a']
>>>[1,2,3,a,5]
8、替换元素
a = ”1,2,3,4,5“
>>>a[2,4] =['a','b']
>>>[1,'a','b',4,5]
切片的方式就说到这里,简单的总结一下收个尾。
1、索引值和步长这个三个参数可同为正、同为负或者正负混合,但是必须两者的取值顺序不能冲突,不然取空。
2、一定要考虑step的值,注意没写省略代表为1
好了,今天就到这里了,我们明天见了。
加油,奥里给!