In [18]: a Out[18]: 'abcda12' In [19]: a.startswith('a') Out[19]: True In [20]: a.startswith('ab') Out[20]: True In [21]: a.startswith('a',1,10) Out[21]: False
In [12]: a='abc123dvsasa' In [13]: a.rfind('a') Out[13]: 11 In [14]: a='a12b3a' # 这里查找'a',这里有两个a字符,一个索引值为0,另一个索引值为5,所以输出最高索引值5 In [15]: a.rfind('a') Out[15]: 5 # 未查找到的字符,则输出-1 In [16]: a.rfind('c') Out[16]: -1
In [24]: a Out[24]: 'abcda12' In [25]: a.find('a') Out[25]: 0 In [26]: a.find('a',1,10) Out[26]: 4 In [27]: a.find('f') Out[27]: -1
In [29]: a Out[29]: 'abcda12' In [30]: a.index('1') Out[30]: 5 In [31]: a.index('a') Out[31]: 0 In [32]: a.index('a',1,10) Out[32]: 4 In [33]: a.index('b') Out[33]: 1 # 如果没有这个字符,那么就会报错 In [34]: a.index('f') --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-34-a00dbfb05a0f> in <module>() ----> 1 a.index('f') ValueError: substring not found In [35]:
# 这里面'a'的索引值有两个,一个0,另一个为4,rindex()方法输出最高索引值,所以是4 In [1]: a='abcda12' In [2]: a.rindex('a') Out[2]: 4 In [3]: a.index('a') Out[3]: 0
参考我之前写的文档详解:http://note.youdao.com/noteshare?id=b8fd204bb5e5fce46d24115167db5a9b&sub=014CADAE9F894640B156B3C1E2E7F762
In [38]: a Out[38]: 'my name is {name},age is {age}' # 指定关键字的形式赋值 In [39]: a.format(name='Peng',age=23) Out[39]: 'my name is Peng,age is 23' # 按顺序的形式赋值 In [40]: a = 'my name is {0},age is {1}' In [41]: a.format('Peng',23) Out[41]: 'my name is Peng,age is 23'
In [3]: a = 'abc123' In [4]: a.isalnum() Out[4]: True In [5]: a = 'abc123\#' In [6]: a.isalnum() Out[6]: False In [7]: a = '123' In [8]: a.isalnum() Out[8]: True In [9]: a = 'abcA' In [10]: a.isalnum() Out[10]: True
In [21]: a='advsd' In [22]: a.isalpha() Out[22]: True In [23]: a='advsd#@' In [24]: a.isalpha() Out[24]: False In [25]: a='advsd123' In [26]: a.isalpha() Out[26]: False In [27]: a='123' In [28]: a.isalpha() Out[28]: False pycharm测试: a='中' v = a.isalpha() print(v) --> True
In [42]: a Out[42]: '1' In [43]: a.isdigit() Out[43]: True In [44]: a='123' In [45]: a.isdigit() Out[45]: True In [46]: a='123a' In [47]: a.isdigit() Out[47]: False In [48]: a='123#' In [49]: a.isdigit() Out[49]: False
In [1]: a='Abc' In [2]: a.lower() Out[2]: 'abc' In [3]: a='123' In [4]: a.lower() Out[4]: '123' In [5]: a='ABC' In [6]: a.lower() Out[6]: 'abc' In [7]: a='Abc123' In [8]: a.lower() Out[8]: 'abc123'
注意:有些字符串中包含数字,但是该方法只判断字符串中的字母是否是小写,与数字无关,只要字符串中的字母全部为小写,则输出True
In [1]: a='123' In [2]: a.islower() Out[2]: False In [3]: a='abc' In [4]: a.islower() Out[4]: True In [5]: a='Abc' In [6]: a.islower() Out[6]: False In [7]: a='123a' In [8]: a.islower() Out[8]: True
In [1]: a='abc' In [2]: a.upper() Out[2]: 'ABC' In [3]: a='123a' In [4]: a.upper() Out[4]: '123A'
注意:有些字符串中包含数字,isupper()方法只匹配该字符串中的==字母==,只要字母全部为大写,那么输出就为True
In [5]: a Out[5]: '123a' In [6]: a.isupper() Out[6]: False In [7]: a='ABC' In [8]: a.isupper() Out[8]: True In [9]: a='Ab' In [10]: a.isupper() Out[10]: False In [11]: a='123A' # 字符串中的字母都为大写,那么就输出True,虽然包含数字,但是不影响 In [12]: a.isupper() Out[12]: True
In [1]: a='abc' In [2]: a Out[2]: 'abc' In [3]: a.title() Out[3]: 'Abc' In [4]: a='123a' # 可以看到虽然a不是在首位,数字在首位,但是对于字母来说,a就是第一个字母,所以title()方法将其转换成大写字母 In [5]: a.title() Out[5]: '123A'
注意:有些字符串中会包含数字,有些是以数字开头的,使用istitle()方法的时候是匹配到的第一个字母为大写(前面如果有数字,直接忽略),则输出为True
In [1]: a='abc' In [2]: a.istitle() Out[2]: False In [3]: a='Abc' In [4]: a.istitle() Out[4]: True # 虽然这里是数字开头,但是该方法只针对字母,出现的第一个字母为大写,则输出True In [5]: a='123A' In [6]: a.istitle() Out[6]: True
字符串内容必须全部为空格类的,则输出True;
In [1]: a='abc' In [2]: a.isspace() Out[2]: False In [3]: a=' abc' In [4]: a.isspace() Out[4]: False In [5]: a='\nabc' In [6]: a.isspace() Out[6]: False In [7]: a='\n' In [8]: a.isspace() Out[8]: True In [9]: a='\t' In [10]: a.isspace() Out[10]: True In [11]: a=' ' In [12]: a.isspace() Out[12]: True In [13]: a=' ' In [14]: a.isspace() Out[14]: True # 没有值的时候,也为False In [15]: a='' In [16]: a.isspace() Out[16]: False
作用:制作表格的时候使用这个方法
In [1]: a='username\tpasswd\tport\tlist' # 这里20为字符串内容的字符数,例如a='abc',那么这里就只有3个字符。不够20个,则以空格填补 In [2]: a.expandtabs(20) Out[2]: 'username passwd port list' In [3]: a = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123" In [4]: a.expandtabs() Out[4]: 'username email password\nlaiying ying@q.com 123\nlaiying ying@q.com 123\nlaiying ying@q.com 123'
In [1]: a='AbcDeF' In [2]: a.swapcase() Out[2]: 'aBCdEf' In [3]: a='123aAb' In [4]: a.swapcase() Out[4]: '123AaB'
In [7]: a='abc' In [8]: a.zfill(10) Out[8]: '0000000abc' In [9]: a.zfill(20) Out[9]: '00000000000000000abc'
In [1]: a=' abcdefx' In [2]: a Out[2]: ' abcdefx' In [3]: a.strip() Out[3]: 'abcdefx' # 指定移除的字符串 In [4]: a.strip('fx') Out[4]: ' abcde' In [5]: a.strip(' a') Out[5]: 'bcdefx' In [6]: a.strip('x') Out[6]: ' abcdef' In [7]: a = 'abc' In [8]: a.strip('c') Out[8]: 'ab' # 指定去除字符a和c In [9]: a.strip('ac') Out[9]: 'b'
In [7]: a Out[7]: ' abcdefx' In [8]: a.lstrip() Out[8]: 'abcdefx' In [9]: a.lstrip(' abcd') Out[9]: 'efx'
匹配字符串规则为:最多匹配
In [19]: a='ab123cd ' In [20]: a.rstrip() Out[20]: 'ab123cd' # 匹配字符串规则如下,按匹配字符最多开始匹配,然后在单个匹配 In [21]: a.rstrip(' cd') Out[21]: 'ab123' In [22]: a.rstrip(' dc') Out[22]: 'ab123' In [23]: a.rstrip(' dc321') Out[23]: 'ab' In [24]: a.rstrip(' dc321a') Out[24]: 'ab' In [25]: a.rstrip(' dc321ab') Out[25]: ''
替换字符串中的字符,可以指定替换次数
In [46]: a Out[46]: 'abc' In [47]: a='abc 123 ' In [48]: a Out[48]: 'abc 123 ' In [49]: a.replace(' ','*') Out[49]: 'abc*123*' In [50]: a.replace('c','\n') Out[50]: 'ab\n 123 ' # 指定替换次数 In [1]: a='abc123cde' In [2]: a.replace('c',' ') Out[2]: 'ab 123 de' In [3]: a.replace('c',' ',1) Out[3]: 'ab 123cde'
该方法保留了分隔符,但是不能指定分割次数,只能分割一次,需要指定分隔符
In [1]: a='abc123cde' In [2]: a.partition('c') Out[2]: ('ab', 'c', '123cde') In [3]: a.partition('b') Out[3]: ('a', 'b', 'c123cde') # 括号内只能输入一个实参,也就是一个参数 In [4]: a.partition('c',2) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-4-cecaf7a153f7> in <module>() ----> 1 a.partition('c',2) TypeError: partition() takes exactly one argument (2 given)
输出保留分隔符,不可以指定分割次数,只能分割一次
In [6]: a Out[6]: 'abc123cde' In [7]: a.partition('c') Out[7]: ('ab', 'c', '123cde') In [8]: a.rpartition('c') Out[8]: ('abc123', 'c', 'de')
可以分割多次,也可以指定分割次数,但是不保留分隔符
In [6]: a = 'abc' In [7]: a.split('c') Out[7]: ['ab', ''] # 可以看到,作为分隔符的'b'是没有输出的 In [8]: a.split('b') Out[8]: ['a', 'c'] In [9]: a='abc 123c' # 不指定分隔符的时候是默认按空格分割的 In [10]: a.split() Out[10]: ['abc', '123c'] # 指定分隔符'c',遇到字符'c'就会分割一次,这里有两个'c',所以分割两次,产生三个元素 In [11]: a.split('c') Out[11]: ['ab', ' 123', ''] # 也可以指定分割次数,这里指定分割次数为1 In [12]: a.split('c',1) Out[12]: ['ab', ' 123c']
splitlines()方法的分隔符:为换行符\n,不可以指定分隔符
In [16]: a='abc\n123c' # 默认括号内不写,则为False In [17]: a.splitlines() Out[17]: ['abc', '123c'] # 是否保留分隔符,分隔符是\n In [18]: a.splitlines(True) Out[18]: ['abc\n', '123c'] In [19]: a='abc\n123c\nde' In [20]: a.splitlines() Out[20]: ['abc', '123c', 'de'] In [21]: a.splitlines(True) Out[21]: ['abc\n', '123c\n', 'de'] In [22]: a.splitlines(False) Out[22]: ['abc', '123c', 'de']
可以指定分割次数,可以进行多次分割,输出不保留分隔符
In [12]: a Out[12]: 'abc123cde' In [13]: a.rsplit('c') Out[13]: ['ab', '123', 'de'] # 指定分割次数后,可以看出是从右往左进行分割的 In [14]: a.rsplit('c',1) Out[14]: ['abc123', 'de']
参考链接:https://www.cnblogs.com/cedrelaliu/p/6004352.html
In [1]: a='abcd' # 单个字符输出的,字符串索引值从0开始算起 In [2]: a[0] Out[2]: 'a' In [3]: a[1] Out[3]: 'b' In [4]: a[2] Out[4]: 'c' In [5]: a[3] Out[5]: 'd' # 输出整个字符串的 In [6]: a[:] Out[6]: 'abcd' In [7]: a[0:] Out[7]: 'abcd' # 输出指定位置到结尾的字符串 In [8]: a[1:] Out[8]: 'bcd' In [9]: a[2:] Out[9]: 'cd' In [10]: a[-2:] Out[10]: 'cd' # 倒序过来就是-1表示的最后一位字符,同理可得其他的 In [11]: a[-1] Out[11]: 'd' In [12]: a[-2] Out[12]: 'c' In [13]: a[-3] Out[13]: 'b' In [14]: a[-4] Out[14]: 'a' # 指定输出指定位置的字符 In [15]: a[0:3] Out[15]: 'abc' In [16]: a[0:2] Out[16]: 'ab' # 指定输出不包含最后一位的字符串 In [17]: a[0:-1] Out[17]: 'abc'
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。