Python 学习笔记-字符串


今天学习Python对字符串的一些基础处理,感觉对于工作中的自动化脚本发送CLI命令会很有帮助。

首先最重要的是%,标称"转换说明符(conversion specifier)”,用于字符串格式化。

左侧放置一个字符串(格式化字符串),而右侧放置希望被格式化的值(待格式化的值)

1 2 3 4 5 left = "Hello,%s good " # %s 表示期望被格式化的类型 right = "she's"print left % right # %用来隔开格式化字符串和待格式化值 Hello,she's good

注意,如果不在%后加s, 程序报错说

TypeError: float argument required, not str

如果right不是字符串,则会用str将其转化为字符串。

1 2 3 4 print "Price of eggs: $%d" %42 print "Price of eggs in HEX: $%x" %42 Price of eggs: $42 Price of eggs in HEX: $2a


除此之外,字符串模块string 还提供了很多有用的方法,例如Template中的subsutitute方法用以替换字符串。

1 2 3 4 5 6 7 from string import Templates s=Template("$x loves some one") print (s.substitute(x='she')) print s she loves some one 0x105bc1350>

第一次打印的是被替换后的字符串,第二次打印的是模板。

常用的字符串操作方法还有以下几种:

  • find ,等同于 in

    1 2 3 4 5 6 7 8 s="the best movie"print s.find('movie') print 'movie' in s print s.find('movie',10) #提供起始点,从index 10开始找 print s.find('movie',1,5) #提供起始点和结束点,从index 1找到index 59 True -1 -1
    • join & split, 连接和分割字符串

      1 2 3 4 5 6 7 8 9 10 from macpath import join s=[' ','root','home'] print '//'.join(s) s1= 'C:' + '\\'.join(s) print s1 print s1.split('\\') //root//home C: \root\home ['C: ', 'root', 'home']

      这里需要注意的是\\, 如果只写作\, 由于非原始字符串会把 \ 认作是转义符号,所以程序理解的是\r这个特殊的ASCII符号,既回车。

      1 2 3 4 5 s1 = 'C:\root\home' print s1 C: oot\home

      所以我们使用\\, 用转义符号\去转义\, 即是告诉程序 \ 是字符串的一部分。

      还有一种方法就是使用原始字符串,它对于反斜线不会特殊对待:


      1 2 3 s=[' ',r'root','home'] print 'C:'+'/'.join(s) C: /root/home
      • strip,去除字符串两侧的字符 (默认为空格)

      • translate, 同replace,但可以同时进行多个替换,效率更高。

        例如,要同时将字符串中的c替换成k, s替换成z.

        1 2 3 4 5 6 7 8 9 10 from string import maketrans table = maketrans('cs','kz') #建立一张替换规则表 print len(table) print 'this is a magnificent day!'.translate(table,'!') #第二个参数用来指定要删除的字符 256 thiz iz a magnifikent day

        除以上外,还有lower, replace, capitalize等不常用方法。

        欢迎大家访问我的个人网站 萌萌的IT人

评论关闭