2010年7月1日星期四

Python学习笔记--string 字符串

1. 字符串的定义

可以使用单引号(' '),双引号(" "):这两个表示的方式完全等价。
还可以使用三引号(单双引号都可以),可以进行多行的字符串的定义。
Raw字符串,即完全原样字符串,不经心转义,eg:r'c:\py\text'
Unicode字符串,多字节字符串, eg:u'text',u'ab\u0020cd'
Unicode --> normal:str(u"text")
normal --> Unicode:unicode("text")

2. 字符串操作

加法+:字符串的连接,'abc'+'def'
乘法*:字符串重复,'Hi!' * 3
求字符串的长度len()
字符串循环索引:
            ss = 'Hello'
            for c in ss: print c,  # H e l l o
            "H" in ss  # 1 or true
            "z" in ss   # 0 or false
字符串索引和分块:
           ss[0]  # 'H'
           ss[-2] # 'l'
           ss[1:3] #'el'
           ss[:-1]  #'Hell'
           ss[m:n], m和n可以缺省,m缺省为0, n缺省为ss的长度
           ss[start: end: step], eg, ss[1:5:2], ss[ : :-1]
字符串转换工具:
           不能直接把数值和字符串(即使这个字符串很像一个数字)使用加号“+”连接,因为加号“+”可能是表示字符串连接,也可能表示数值加法,所以Python就把这种情况视为语法错误。
           string--> number: eg. int("42"), float("1.23E-10"), string.atoi("42")
           number-->string:  eg. str(42), `42`, 这里的运算符backquotes(`object`),把之间的对象object转换成字符串。
           eval 函数用来执行Python代码。
改变字符串:
          首先要注意,字符串是不可改变的--immutale: can't chang in-place。所以要改变字符串,其实就是要使用相应的上述操作创造一个新的字符串。
          eg. ss='spam' ;  ss[0]='A' 将触发错误。

3. 字符串格式化

Python在string中重载了%运算符,这里类似了C语言中的sprintf函数中%的作用,占位符,eg:
>>> exclamation = "Ni" 
>>> "The knights who say %s!" % exclamation 
'The knights who say Ni!' 
这里使用exclamation变量替换了左边字符串中的%s

 >>> "%d %s %d you" % (1, 'spam', 4) 
'1 spam 4 you' 
如果是多个变量的时候,要使用小括号包围起来,形成一个元组tuple

 >>> "%s -- %s -- %s" % (42, 3.14159, [1, 2, 3]) 
'42 -- 3.14159 -- [1, 2, 3]'
这里把int,float,array类型的数据自动转换成string类型



没有评论:

发表评论