初学python,有些地方可能还不够明白,希望各位看官发现我的错误后留言指正!
一.字符串的索引与切片
注:字符串的第一位的索引值是0
1.索引案例
1 s = 'abcd' 2 s1 = s[0] 3 print(s1)#输出a
2.切片案例,注:顾头不顾尾,即指定的最后一个索引的字符取不到
1 s = 'abcd' 2 s2 = s[0:3] 3 print(s2) 4 #输出abc,不包括下标是3的d
3.若字符串非常长,而且要取后面的字符串,可以从最后一位(下标是-1)开始取
1 s = 'abcd' 2 s3 = s[-1] 3 print(s3)#输出d
4.取整个字符串
1 s = 'abcd' 2 s4 = s[0:] 3 s5 = s[:] 4 print(s4,s5)#都会输出整个字符串 5 6 print(s[0:0])#输出一个空字符串,不会报错
5.步长:默认步长为1,若需要间隔固定的间距取字符,则步长=间距+1 ,格式:[首下标:尾下标:步长]
1 s = 'abcde' 2 s6 = s[0:4:2] 3 print(s6)#输出ac
6.逆序
1 s = 'abcde' 2 s7 =s[-1::-1] 3 #或者s7 =s[::-1] 4 print(s7)#输出edcba
7.指定某个下标开始逆序
1 s = 'abcde' 2 s8 =s[3::-1] 3 print(s8)#输出dcba
二、大写、小写转换
1.首字母大写
1 s='abcd' 2 s1 = s.capitalize()#首字母大写
2.首字母大写:用空格隔开或者其他特殊字符、数字隔开也可以
1 s = 'sun ton-alex*egon' 2 s1=s.title()#将s和t转换成大写 3 print(s1)#输出Sun Ton-Alex*Egon
3.全部转大写、小写
1 s='abcd' 2 s2 = s.upper()#转换大写 3 s3 = s.lower()#转换小写
其用处体现在:输入验证码时,不区分大小写
4.大小写翻转
1 s='AbCd' 2 s.swapcase()#小写转大写、大写转小写
三.字符串居中、空白填充
1 s='AAA' 2 s1 = s.center(20)#总长度为20,将字符串居中 3 s2 = s.center(20,'*')#居中,并且两边的用'*'填充
四.\t补位
s='ab\tcd' s1 = s.expandtabs() print(s1) #输出ab cd,中间有六个空格,总共八位,\t前面的ab占两位,所以补六位,大于8位的 #补16位
五.公共方法-字符串长度,列表长度、字典长度……
1 s = 'abcd我' 2 print(len(s))#输出5,中文也算一个字符
六.判断以单个字符或多个字符开头、结尾
1 s = 'abcd' 2 s1 = s.startswith('a') 3 s2 = s.startswith('ab') 4 s3 = s.startswith('abc') 5 print(s1,s2,s3)#都返回True 6 7 #判断结尾的字符:同理,只是写法变了 8 s = 'abcd' 9 s1 = s.endswith()
1.将字符串切片后,判断是否以某字符开头:
1 s = 'abcd' 2 s1 = s.startswith('b',1,3)#判断切片后的'bc'是否以字符'b'开头
七.找出字符串里是否有某个字符或连续的字符串,若找到则返回其第一个字符的索引(下标),找不到则返回-1
1 s = 'abcd' 2 s1 = s.find('c') 3 print(s1)#输出2
利用for循环找到字符串里所有指定字符的下标
1 s = 'abcdacd' 2 for index,i in enumerate(s): 3 if i=='a': 4 print('{}的下标:{}'.format(i,index)) 5 #输出: 6 #a的下标:0 7 #a的下标:4
还有一个方法index,它和find作用类似,通过元素找索引,不同点是:找不到指定的字符则会报错!
八.默认删除字符串前后的空格
1 s = ' abcd ' 2 s1 = s.strip() 3 print(s1)#输出abcd
1.也可以指定删除的字符或者特殊字符,空格也可以指定,注:字符之间的空格、指定字符不能删除
1 s = 'abcd***' 2 s1 = s.strip('*') 3 print(s1)#输出abcd 4 5 #也可以指定多个字符或特殊字符 6 s = ' %%abcd***' 7 s1 = s.strip(' %*')#指定字符的顺序无关 8 print(s1)#输出abcd
2.因为strip()方法能删除字符串两边的指定字符,所以可以指定只删除字符串左边或右边的字符
#删左边,不动右边 lstrip() #删右边,不动左边 rstrip()
九.统计指定字符的个数
1 s = 'abbcd' 2 s1 = s.count('a') 3 s2 = s.count('bb') 4 print(s1,s2)#都输出1
十.分割成列表(字符串转换成列表),默认以空格为分隔符进行分割,当然也可以指定字符为分隔符
1 s = 'a b c d' 2 s1 = s.split() 3 print(s1)#输出['a','b','c','d'] 4 5 #注:若分隔符前面没有字符,也会分割成一个空的字符 6 s = ';a;b;c;d' 7 s2 = s.split(';') 8 print(s2)#输出['','a','b','c','d']
十一.格式化输出
第一种:
1 s = '我叫{},今年{}'.format('sun','19')#数字可以不用引号引起来 2 print(s)
第二种:利用索引(下标),format里的字符用逗号隔开,下标从0开始
s = '我叫{0},今年{1}'.format('sun','19')#'sun'的下标是0,'19'的下标是1
第三种:键值对的形式,在format里的字符可以不用按输出的顺序排列
1 s = '我叫{name},今年{age}'.format(age=19,name='sun')
十二.替换
1 s = 'abacda' 2 s1 = s.replace('a','A')#将所有的a替换成A 3 4 #也可以指定次数 5 s1 = s.replace('a','A',1)#只把第一个a替换成A
十三.判断字符串组成内容
1 #判断字符串是否只由数字组成 2 s = '123' 3 print(s.isnum()) 4 5 #判断字符串是否只由字母组成 6 s1 = 'abc' 7 print(s.isalpha()) 8 9 #判断字符串是否由数字或字母组成 10 s2 = '123abc' 11 print(s.isalnum())
十四.for循环(有限循环):in后面的能迭代的就能循环
1 s = 'abcd' 2 for i in s: 3 print(i) 4 #输出: 5 a 6 b 7 c 8 d
while循环可以是无限循环(while 1),加上控制条件
1 s = 'abcdacd' 2 i=0 3 while i<len(s): 4 print(s[i]) #输出字符串里的每个字符 5 i += 1
in的其他用法:判断字符串里是否存在某些字符,当然了,有in那么就有not in
1 s = 'azxczcx政治' 2 if '政治' in s: 3 print('含有敏感词')