1、string模块支持哪些字符形式?分别是什么。
string支持的字符形式有:
('_re', '====>', <module 're' from 'C:\Python25\lib\re.pyc'>)
('ascii_letters', '====>', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')('ascii_lowercase', '====>', 'abcdefghijklmnopqrstuvwxyz')('ascii_uppercase', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')('digits', '====>', '0123456789')('hexdigits', '====>', '0123456789abcdefABCDEF') #不太理解('letters', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')#('lowercase', '====>', 'abcdefghijklmnopqrstuvwxyz')('octdigits', '====>', '01234567') #不太理解('printable', '====>', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c')#全部内容('punctuation', '====>', '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~') #标点符号('uppercase', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')('whitespace', '====>', '\t\n\x0b\x0c\r ') #所有空字符
2、有哪些字符操作符?
简单做个分类:
关于大小写的函数:①操作首字母capitalize,capwords。②全部字母:upper,lower,swapcase
字符查找:①查找次数:count,②查找位置 find,index
字符串内容修改:①拆分 split ,②连接join,本人习惯用“+”,③对齐 rjust,ljust,center,④替换replace,替换空白字符 trim,ltrim,rtrim。
补充一些:拆分 str.partition(seq),根据seq拆分字符串,左起遇到第一个seq后,将str拆分,返回三个元组,如 hello word,seq=‘l’,返回结果: ('he', 'l', 'lo word')
string.capitalize(s)返回字符串s的一个副本,这个副本的第一个字符大写。
>>> s="hello world"
>>> string.capitalize(s)'Hello world'string.capwords(s)每个单词的首字母大写。
>>> string.capwords(s)
'Hello World'
>>> string.center(s,20)
' hello world '>>> string.center(s,2)'hello world'>>> string.center(s,20,'*')
'****hello world*****'string.center(s,width[,fillchar])函数,用指定的宽度来返回一个居中版的s,如果需要的话,就用fillchar进行填充,默认是空格。但是不会对s进行截取。即如果s的长度比width大,也不会对s进行截取。
>>> string.count(s,"h")
1string.count(s,sub[,start[,end]])返回在s[start:end]范围内子串sub在字符串s当中出现的次数
>>> string.find(s,"a")
-1string.find(s,sub[,start[,end]])返回在s[start:end]范围内子串sub在字符串s当中出现的最小下标,没有找到返回-1
string.index(s,sub[,start[,end]])与string.find方法类似,只不过当没有找到子串sub的时候,会抛出ValueError异常
>>> string.index(s,"a")
Traceback (most recent call last): File "<pyshell#233>", line 1, in <module> string.index(s,"a") File "C:\Python25\lib\string.py", line 326, in index return s.index(*args)ValueError: substring not found>>> string.ljust(s,20)
'hello world 'string.ljust(s, width[, fillchar])字符串的左对齐,那么string.rjust()就是右对齐。
>>> string.upper(s)
'HELLO WORLD'>>> string.lower(s)'hello world'
string.upper()和string.lower()比较简单。就是全部转换为大写或者小写
>>> string.swapcase(s)
'HELLO WORLD'string.swapcase()实现大小写的转换。将大写转换为小写,将小写转换为大写。
>>> s=" hello world "
>>> string.strip(s)'hello world'string.strip(s)剔除字符串s左右空格>>> string.lstrip(s)
'hello world '>>> string.rstrip(s)' hello world'string.lstrip(s)和string.rstrip(s)分别剔除字符串左、右边的空格>>> string.zfill(s,20)
'000000 hello world '>>> string.zfill(s,2)' hello world 'string.zfill(s,width)与center类似,不过这里的填充使用"0"来替代。s="abc"
>>> x=string.maketrans(string.ascii_letters,string.ascii_letters[2:]+string.ascii_letters[:2])
>>> string.translate(s,x)'cde'string.maketrans()和string.translate()一般配合使用,用maketrans定义字符串的转换规则,然后用translate来实现。
我们可以用它来实现swapcase()方法
>>> x=string.maketrans(string.ascii_letters,string.letters)
>>> string.translate("AbCdEf",x)'aBcDeF'
>>> string.translate("Ab CdE f",x)'aB cDe F'>>> string.split("hello world")
['hello', 'world']string.split(s, sep=None, maxsplit=-1)用sep拆分s,返回拆分后的列表,如果sep没有提供或者为None,那么默认的就是空格string.join的功能刚好与其相反。
>>> l=string.split("hello world")
>>> string.join(l)'hello world'join(list [,sep])是用sep把list组合成一个字符串返回。