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

[经验分享] Python的字符串

[复制链接]

尚未签到

发表于 2015-4-21 06:56:28 | 显示全部楼层 |阅读模式
  Python有内置的字符串类型, 内置的字符串是序列(Sequence), 是不可变的序列,  所以不可变序列通用的方法对其都适用.
  
  
  对Python2, 内置的字符串类型有str和unicode,
  Python2
  'abc' 是str, u'中国123'  是unicode



# Python2.7
>>> type('abc')

>>> type(u'中国123')

  
  如果我们使用Python2, 应该都尽量使用unicode,就算是纯英文的.
  
  Python3
  但在Python3中, 没有预定义unicode类型了,内置字符串就是str, 但是str中的字符都是unicode编码的



#Python3.3
>>> type(u'中国')

>>> type('abc')

>>> type(str)

>>> type(unicode)
NameError: name 'unicode' is not defined
  
  
  
  
  下面讨论一些Python内置字符串常用的方法, Python2中这些方法对str和unicode基本都是一样的, 没有讨论到的去文档查阅就行,基本上需要的功能都有方法实现.
  
  字符串分隔, split
  str.split()接受分隔字符串, 返回分隔后的一个list



>>> s = 'wangyu@lvye.cn'
>>> s.split('@')
['wangyu', 'lvye.cn']
  
  如果同一个分隔符连续多个存在,则在返回结果中会有空字符串



>>> s = 'wangyu@@@@lvye.cn'
>>> s.split('@')
['wangyu', '', '', '', 'lvye.cn']
  4个连续的@产生了3个空串
  
  当分隔字符串是多字符的,必须是全匹配



>>> s = 'abccba'
>>> s.split('')
['abc', 'cba']
  
  一个反面例子



>>> s = 'abccba%$acb'
>>> s.split('$')
['abccba%$acb']
  
  str.split()也可以不接受参数,这时候是使用空格做分隔,且不产生空串,如果开头和结尾有空格,也会被忽略掉



>>> s = ' we are the   champion'
>>> s.split()
['we', 'are', 'the', 'champion']
  
  
  子串替换
  str.replace(old, new [, count])
  replace把old替换成new,并且可以指定替换个数, 而且函数返回一个copy,不会影响原来的str对象.



>>> s = 'he is nate, nate is his name'
>>> s.replace('nate', 'sky')
'he is sky, sky is his name'
>>> s
'he is nate, nate is his name'
  
  
  
  
  子串查找
  字串查找用find()或index(),  其中index()是序列通用的方法
  不同的是若没找到find()返回-1, index()抛出异常ValueError, 找到返回字串索引.
  find()和index()的语法相同
  



str.find(substr [, start [, end]])
  
  普通使用



>>> s='we are are the champion'
>>> s.find('ar')
3
  加上范围



>>> s='we are are the champion'
>>> s.find('ar', 4)
7
  
  注意,如果只是想知道一个字符串是否包含一个子串,使用 in



>>> s = 'we are the champion'
>>> 'are' in s
True
  
  
  字符串的strip
  同样的strip会copy一份原来的字串进行处理.
  不加任何参数,去除左右的空格



>>> s = '    www.lvye.cn  '
>>> s.strip()
'www.lvye.cn'
  
  带上参数



>>> s.strip('wcn. ')
'lvye'
  注意带上参数时,空格要显示指定.
  strip还可以去除两端的换行符
  
  
  字符串其它的方法


  • isalpha()  是否都是字母
  • isdigit()    是否都是数字
  • upper()    都转化为大写
  
  Python str的方法,Python文档中很全.
  -------------------------
  参考:
  http://docs.python.org/3/library/stdtypes.html#str   Python文档

运维网声明 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-58979-1-1.html 上篇帖子: python+django+pycharm 环境配置 (window7) 下篇帖子: 精悍的Python代码段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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