python基础一数据类型之字符串
摘要:
python基础一中有字符串,所以这篇主要讲字符串。
一,字符串的注释
二,字符串的索引与切片
三,字符串的方法
一,字符串的注释
单引号 双引号 三引号都可以用户定义字符串。三引号不仅可以定义字符串,还可以用于注释。
str = 'abcedfg' str = "abcedfg" str = '''abcedfg'''
注释如下: ''' this is tes '''
二,字符串的索引与切片
a = 'abcefg'
a[0] 索引的值
a[0:2] 切片的值
注意:
正常情况下,小的数值放在前面,如果指定步长的值为负数,那么此时大的数值放可以放到前面。
1, 顾头不顾尾
2, 从左往右切 (默认只能)
3, 要想从右往左切,需要加一个负数
三,字符串的方法
1,capitalize (将首字母变换成大小) str1 = 'abc123321cda' str1.capitalize() 运行结果:Abc123321cda
2,center center(self, width, fillchar=None) 内容居中,width:总长度;fillchar:空白处填充内容,默认无.self不用填写 str1 = 'abc123321cda' str1.center(20,'#') 运行结果:'####abc123321cda####'
3,count (关键字的个数) str1 = 'abc123321cda' str1.count('a') 运行结果:2
4,endswith' (以什么结尾,返回bool值) str1 = 'abc123321cda' str1.endswith('a') 运行结果:True
5,expandtabs (将制表符转换为空格,默认1个制表符为8个空格) str1 = 'abc\t123321cda' str1.expandtabs(16) 运行结果:abc 123321cda
6,find find(sub [,start [,end]]) 寻找子序列的位置,如果没找到,则返回-1. str1 = 'abc123321cda' str1 = 'abc123321cda' 运行结果:2
7,format 字符串格式化,动态参数。其中{0},{1}为占符。 str1 = 'ab{0}123321cd{1}' str1.format('c','a') 运行结果:'abc123321cda'
8,index index(sub [,start [,end]]) 寻找子序列的位置,如果没有,则报错,和find类似。 str1 = 'abc123321cda' str1.index('a') 运行结果:'0'
9,isalnum 是否只由数字和字母组成,以bool值返回。 str1 = 'abc123321cda' str1.isalnum() 运行结果:True
10,isalpha 是否为字母,以bool值返回。 str1 = 'abc123321cda' str1.isalpha() 运行结果:False
11,isdigit 是否数字,以bool值返回。 str1 = 'abc123321cda' str.isdigit() 运行结果:False
12,islower 是否全为小写,以bool值返回。 str1 = 'abc123321cda' str1.islower() 运行结果:True
13,isspace 是否全为空格,以bool值返回。 str1 = 'abc 123321cda' str1.isspace() 运行结果:False
14,istitle 判断每个字符串第一个字母是不是大写,其他是不是小写 str1 = 'Abc123321Dda' str1.istitle() 运行结果:True
15,isupper 判断每个字符串是否都为大写 str1 = 'Abc123321Dda' str1.isupper() 运行结果:False
16,join 连接字符串 str1 = 'abc123' '_'.join(str1) 运行结果:'a_b_c_1_2_3'
这个我一般用于列表的连接。例如:
list1 = ['hello','boy']
','.join(list1)
运行结果:'hello,boy'
17,ljust (self, width, fillchar=None) 内容左对齐,右侧填充。
str1 = 'Abc123321Dda'
str1.ljust(20,'#')
运行结果:'Abc123321Dda########'
18,lower 所有字符串大小字母变小写 str1 = 'Abc123321Dda' str1.lower() 运行结果:'abc123321dda'
19,lstrip lstrip(self, chars=None) 去除左侧字符,默认为空白。 str1 = ' Abc123321Dda' str1.lstrip() 运行结果:'Abc123321Dda'
20,partition (self, sep) 分割切前中后三部分,以元祖形式返回 str1 = 'Abc123321Dda' str1.partition('33') 运行结果:('Abc12', '33', '21Dda')
21,replace 替换字符串 str1 = 'Abc123321Dda' str1.replace('A','a') 运行结果:'abc123321Dda'
22,rfind 查找子序列的位置 和find类似,它是从右往左找,或者说是最后1个子序列的位置,如果没找到,返回-1. str1 = 'Abc123321cda' str.rfind('c') 运行结果:9
23,rindex 查找子序列的位置 和index类似,它是从右往左找,或者说是最后1个子序列的位置,如果没找到,报错! str1 = 'Abc123321cda' str.rindex('c') 运行结果:9
24,rjust (self, width, fillchar=None) 内容右对齐,右侧填充。 str1 = 'Abc123321Dda' str1.rjust(20,'#') 运行结果:'########Abc123321Dda'
25,rpartition (self, sep) 分割切前中后三部分,以元祖形式返回,从右向左切割,即以最后1个关键字作为切割符。 str1 = 'Abc123321Dda' str1.rpartition('2') 运行结果:('Abc1233', '2', '1Dda')
26,rsplit(self, sep=None, maxsplit=None) maxsplit指定切割的次数 切割,从右边开始切割,切割的字符不会出现到切割元祖中。
str1 = 'Abc123321Dda'
str1.rsplit('2')
运行结果:['Abc1', '33', '1Dda']
27,rstrip rstrip(self, chars=None) 去除右侧字符,默认为空白。 str1 = 'Abc123321Dda ' str1.rstrip() 运行结果:'Abc123321Dda'
28,split(self, sep=None, maxsplit=None) maxsplit指定切割的次数 切割,从左边开始切割,切割的字符不会出现到切割元祖中。 str1 = 'Abc123321Dda' str1.split('2') 运行结果:['Abc1', '33', '1Dda']
29,splitlines 以换行符(\n)作为分割,以列表形式返回。 str1 = 'Abc123\n321Dda', str1.splitlines() 运行结果:['Abc123', '321Dda']
31, startswith' (以什么开头,返回bool值) str1 = 'abc123321cda' str1.startswith('a') 运行结果:True
32, strip 去除左右2边字符,默认空格。 str1 = ' abc123321cda ' str1.strip() 运行结果:'abc123321cda' str1 = '-abc123abc#'
str1.strip('-#') 运行结果:'abc123abc'
33, swapcase 小写变大写,大小变小写 str1 = 'Abc123321cD' str1.startswith('a') 运行结果:'aBC123321Cd'
34, title 字符串首字母转换成大写 str1 = 'abc123321cd' str1 = str1.title() 运行结果:'Abc123321Cd'
35, translate translate(table[, deletechars]) 返回翻译后的字符串(较复杂,要想要translate,就需要先用maketrnas创建翻译表) table -- 翻译表,翻译表是通过maketrans方法转换而来。 deletechars -- 字符串中要过滤的字符列表。 from string import maketrans intab = 'abcde' outtab = '12345' trantab = maketrans(intab,outtab) str1 = 'abcdefg' print str1.translate(trantab) 运行结果:'12345fg’,从运行结果可以发现其实是将abcde用12345替代了而已
36, upper 小写字母转换成大写 str1 = 'abc123321cd' str.upper() 运行结果:'ABC123321CDA'
37, zfill 返回指定个数的字符串,原字符串右对齐,前面填充0 str1 = 'abc123321cd' str1.zfill(20) 运行结果:'000000000abc123321cd'