设为首页 收藏本站
查看: 1573|回复: 0

[经验分享] python string模块

[复制链接]

尚未签到

发表于 2015-4-21 08:46:00 | 显示全部楼层 |阅读模式
  以前断断续续的看python,由于应用少,总是看了就忘,所以这里记录下来,已备以后查看。这次主要是把python里面的常用模块简单的做下记录.记录的部分仅仅是自己的理解。
  这里的python版本是2.5.2
  >>> import sys
>>> sys.version
'2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]'
>>> import string
>>> dir(string)
['Template', '_TemplateMetaclass', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
  上面列出了python列出的所有方法和变量,我们来做一下分类统计
  下面我们来分类统计下string模块当中的变量,函数和类
  >>> funOrC=[]
>>> vars=[]
  >>> for fv in dir(string):
name="string.%s"%fv
if callable(eval(name)):
  funOrC.append(fv)
else:
  vars.append(fv)
  
>>> funOrC
['Template', '_TemplateMetaclass', '_float', '_int', '_long', '_multimap', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'expandtabs', 'find', 'index', 'index_error', 'join', 'joinfields', 'ljust', 'lower', 'lstrip', 'maketrans', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'zfill']
  >>> vars
['__builtins__', '__doc__', '__file__', '__name__', '_idmap', '_idmapL', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'digits', 'hexdigits', 'letters', 'lowercase', 'octdigits', 'printable', 'punctuation', 'uppercase', 'whitespace']
  对于变量,我们依次输出其值看一下就可以了。
  >>> for v in vars[6:]:
v,"====>",eval("string.%s"%v)
  
('_re', '====>', )
('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 ')
  
  对于函数我们通过举例的形式来看一下
  string.capitalize(s)返回字符串s的一个副本,这个副本的第一个字符大写。
  >>> s="hello world"
>>> string.capitalize(s)
'Hello world'
  
  string.capwords(s)每个单词的首字母大写。
  >>> string.capwords(s)
'Hello World'
  通过help(string.capwords)也可以看到他的实现吧。首先使用split进行拆分,再用capitalize进行首字母大写,最后用join连接。
  通过这个自己实现以下
  >>> def mycapwords(arg):
newstring=[]
strlist=arg.split()
for str in strlist:
  newstring.append((str.capitalize()))
return string.join(newstring)
  >>> 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")
1
  string.count(s,sub[,start[,end]])返回在s[start:end]范围内子串sub在字符串s当中出现的次数
  
  >>> string.find(s,"a")
-1
  string.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 "", line 1, in
    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组合成一个字符串返回。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59061-1-1.html 上篇帖子: python初体验(1)——基础篇 下篇帖子: python语法学习之函数,类,模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表