python(2)-字符串(2)
字符串格式化:
前面说过一种字符串格式化方法,来复习一下:
>>> print('His name is %s', 'jeff') His name is %s jeff
其实格式化方法不止一种:
>>> print('{0} , {1}'.format('alex','33')) alex , 33
后面的值分按照顺序挨个匹配出来。但是这样好像不太直观,改进一下
>>> print('{name},{age}'.format(name='jeff',age='23')) jeff,23
这样是不是很直观了,对应关系一目了然
>>> print('%-10s%-10s%-10s' % ('name','age','job')) name age job
%-10s 结字符串10个字符的空间,在对齐输出的时候很有用哦。
下面看看字符串的方法:
>>> name = 'jeff' >>> name.__contains__('ff') #’ff’是否包含在name里 True
>>> name.capitalize() #首字母大写 'Jeff' >>> name.center(20) #在20个字符空间内居中 ' jeff ' >>> name.center(20,'*') #可以自定义居中 '********jeff********' >>> name.count('f') #计数 2 >>> name.count('f',0,2) #在切片中计数 0 >>> name.count('f',0,3) 1 >>> name.endswith('f') #判断不否以f结尾 True >>> name.endswith('e',0,2) #在切片中判断 True >>> name = 'j\teff' >>> name.expandtabs() #显示字符串中的转义字符,\t是tab 'j eff' >>> name.index('f') #返回索引值 3 >>> name.find('ex') #返回索引值,没找到返回-1 -1 >>> name.find('ff') #r返回索引,第一个匹配的 3 >>> name.index('x') #index方法没找到时会抛出异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found >>>
>>> name = 'jeff' >>> name.isdigit() #是否是数字数字,注意负数也会返回False哦,正整数和零才返回True False >>> name.isalnum() #是否全是字母或数字 True >>> name.isalpha() #是否全是字母 True >>> name.isdecimal() #是否是十进制小数 False >>> name.isidentifier() #判断字符串是否合法,实际上是判断变量是否合法 True >>> name.islower() #是否全是小写 True >>> name.isupper() #是否全是大写 False >>> name.isnumeric() #是否是数字 False >>> name.isspace() #是否是空格 False >>> name.istitle() #是否是标题 False
join()方法
>>> li = ['a','b','c','d'] >>> '_'.join(li) 'a_b_c_d'
strip()方法: 去掉左右两边的空格,换行符也会被去掉哦。。
>>> 'name '.strip() 'name' >>> ' name '.strip() 'name' >>> 'name\n'.strip() 'name' >>> '\nname\n'.strip() 'name'
lstrip():去掉左边的
rstrip() : 去掉右边的
看看下面这个
>>> intab = "aeiou" >>> outtab = '12345' >>> from string import maketrans >>> trantab = maketrans(intab,outtab) #python3在这里会抛出异常不知道为啥 >>> str = 'this is string example.....wow!!' >>> print str.translate(trantab) th3s 3s str3ng 2x1mpl2.....w4w!!
>>> print str.translate(trantab,'xm') #按映射关系替换,并移出x和m th3s 3s str3ng 21pl2.....w4w!!
继续,看一个分割方法
>>> name = 'jackisppp' >>> name.partition('is') ('jack', 'is', 'ppp')
peplace() 替换
>>> name = 'jack is teacher' >>> name.replace('a','x') #将所有a替换成x 'jxck is texcher'
>>> name.replace('c','T',2) #替换两个 'jaTk is teaTher'
split()
splitlines()
startswith()
swapcase() 大小写转换
title() 转换成标题
upper() 转成大写