首页 > 代码库 > py3学习笔记2(字符串)

py3学习笔记2(字符串)

  除了数字计算,python还可以通过多种方式操作字符串

  他们可以被封装在单引号(‘...‘)或者("...")双引号中,使用这两种方式都可以得到相同的结果。(在单引号中,‘\n‘等将不像在双引号中和C语言等其他语言的字符串定义中显示回车,而是显示其本身,只有显示单引号时使用‘\‘‘)

  使用‘\‘可以摆脱引号的引用关系与字符意义。

>>> spam eggs # single quotesspam eggs>>> doesn\‘t # use \‘ to escape the single quote..."doesn‘t">>> "doesn‘t" # ...or use double quotes instead"doesn‘t">>> "Yes," he said."Yes," he said.>>> "\"Yes,\" he said.""Yes," he said.>>> "Isn\‘t," she said."Isn\‘t," she said.

  使用print()函数将获得一个可读性更好的字符串

>>> "Isn\‘t," she said."Isn\‘t," she said.>>> print("Isn\‘t," she said.)"Isn‘t," she said.>>> s = First line.\nSecond line. # \n means newline>>> s # without print(), \n is included in the outputFirst line.\nSecond line.>>> print(s) # with print(), \n produces a new lineFirst line.Second line.

  如果你需要将‘\‘以及其后的字符显示字符意义,可以在字符串前加‘r‘转义成行字符串

>>> print(C:\some\name) # here \n means newline!C:\someame>>> print(rC:\some\name) # note the r before the quoteC:\some\name

   有些字符串需要占用许多行,这时可以使用"""..."""或者‘‘‘...‘‘‘行尾将自动地包含在字符串中,也可以加入额外的‘\‘来确保这一点。

print("""Usage: thingy [OPTIONS]    -h Display this usage message    -H hostname Hostname to connect to""")

  以上代码将打印

Usage: thingy [OPTIONS]    -h Display this usage message    -H hostname Hostname to connect to

 

  另外,字符串可以使用‘+‘与‘*‘进行操作

>>> # 3 times ‘un‘, followed by ‘ium‘>>> 3*un + iumunununium

  两个或多个相邻的字符串将自动组合在一起

>>> Py thonPython

  但无法使用变量对其进行以上操作

>>> prefix = Py>>> prefix thon # can‘t concatenate a variable and a string literal    ...SyntaxError: invalid syntax>>> (un*3) ium    ...SyntaxError: invalid syntax

  如果你渴望使用变量对字符串进行连接,可以使用‘+‘

>>> prefix + thonPython

   这个特性可以用于当你想分割一个非常长的句子时

>>> text = (Put several strings within parentheses ...         to have them joined together.)>>> textPut several strings within parentheses to have them joined together.    

  你也可以使用类似于其他语言中队数组的索引(index)操作来操作字符串

>>> word = Python>>> word[0] # character in position 0P>>> word[5] # character in position 5n

  负数将从最后开始倒着索引

>>> word[-1] # last charactern>>> word[-2] # second-last charactero>>> word[-6]P

  当然,-0和0是一样的,负数索引从-1开始。

 

  除了索引,python字符串还支持切片(slice),截取字符串中的一部分

>>> word[0:2] # characters from position 0 (included) to 2 (excluded)Py>>> word[2:5] # characters from position 2 (included) to 5 (excluded)tho

  如下形式的两个切片形式将组成一个完整的字符串

>>> word[:2] + word[2:]Python>>> word[:4] + word[4:]Python

  当冒号左侧没有数字时默认将从头开始,右侧没有数字时将读到末尾

>>> word[:2] # character from the beginning to position 2 (excluded)Py>>> word[4:] # characters from position 4 (included) to the endon>>> word[-2:] # characters from the second-last (included) to the endon

  

  你可以用以下这种方法简介地记住切片的位置

技术分享

  

  使用index方法访问超过数组长度的元素将返回错误

>>> word[42] # the word only has 6 charactersTraceback (most recent call last):File "<stdin>", line 1, in <module>IndexError: string index out of range

  而使用slice方法将不受限制,超出时将默认为字符串末尾,没有内容时将返回空字符串

>>> word[4:42]on>>> word[42:]‘‘

 

  注意,在python中,字符串一旦被定义将无法被改变,以下试图改变字符串内容的行为都将报错

>>> word[0] = J    ...TypeError: str object does not support item assignment>>> word[2:] = py    ...TypeError: str object does not support item assignment

  如果你需要一个不一样的字符串,只能创建一个新的

>>> J + word[1:]Jython>>> word[:2] + pyPypy

  

  另外,你也可以使用len()函数来获取一个字符串的长度

>>> s = supercalifragilisticexpialidocious>>> len(s)34

 

py3学习笔记2(字符串)