Python字符串有多种形式,可以使用单引号(' '),双引号(" "),反斜杠(\)可以用来转义。
>>> 'hello world' 'hello world' >>> 'dosen\'t' "dosen't" >>> 'you "too"' 'you "too"' >>> 'you\"is a pig' 'you"is a pig' >>>
print( )函数会生成可读性更强的输出,可以省区两边的引号,并打印出经过转义的特殊字符。
>>> 'hello world' 'hello world' >>> 'dosen\'t' "dosen't" >>> 'you "too"' 'you "too"' >>> 'you\"is a pig' 'you"is a pig' >>> print('hello world') hello world >>> print('dosen\'t') dosen't >>> print('you \"is\" a pig') you "is" a pig >>> s = "Hello World" >>> print(s) Hello World >>>
如果你不想前置(\)的字符转义称特殊字符,可以使用原始字符串方式,在引号前添加(r)即可。
>>> print('C:\some\ame') C:\some me >>> print(r'C:\some\ame') C:\some\ame
字符串面值可以跨行连续输入。一种方式是用三重引号:""" """ 或''' '''。字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个(\)即可。
>>> print(""" You are a pig -fns -fff """) You are a pig -fns -fff >>>
字符串可以用(+)进行连接(粘到一起),也可以用(*)进行重复。
>>> 3*'hello world' 'hello worldhello worldhello world'
相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起。
>>> 'hello' 'world' 'helloworld'
把很长的字符串拆开分别输入的时候有用
>>> txt = ('you are a pig' 'Do you know') >>> txt 'you are a pigDo you know'
只能对两个字面值这样操作,变量或表达式不行。
>>> a = 'py' >>> a 'thon' SyntaxError: invalid syntax
如果你想连接变量,或者连接变量和字面值,可以用(+)号。
>>> a = 'py' >>> a + 'thon' 'python'
字符串是可以被索引(下标访问)的,第一个字符的索引为0。
>>> word = 'python' >>> word[0] 'p' >>> word[3] 'h'
索引也可以是负数,这样会从右边开始数
>>> word[-1] 'n' >>> word[-3] 'h'
0和-0是一样的,所以负数索引从-1开始。
除了索引,字符串还支持切片,索引可以得到单个字符,而且切片可以获取子字符串。
>>> word[0:2] 'py' >>> word[2:4] 'th'
注意切片的开始总是被包含在结果中,结束不被包含。(左闭右开)
>>> word[:2]+word[2:] 'python' >>> word[:3]+word[3:] 'python'
切片的索引有默认值,省略开始索引时默认为0,省略结束索引时默认为字符串结束。
>>> word[:2] 'py' >>> word[2:] 'thon' >>> word[-3:] 'hon'
也可以理解为:将索引视作指向字符之间,第一个字符的左侧标为0,最后一个字符的右侧标为n,其中n是字符串长度。(使用过大的索引会产生错误)
但是,切片中的越界索引会被自动处理
>>> word[2:11] 'thon' >>> word[11:] ''
Python中的字符串不能被修改,它们是immutable的。因此,向字符串的某个索引位置幅值会产生错误。
>>> word[0] = 'a' Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> word[0] = 'a' TypeError: 'str' object does not support item assignment
如果需要一个不同的字符串,应当新建一个:
>>> 'a' + word[1:] 'aython' >>> word[:3] + 'a' 'pyta'
内置函数len()返回一个字符串的长度
>>> s = 'youarsdfe' >>> len(s) 9 >>>
其他的一些操作
[文本序列类型 -- str](内置类型 — Python 3.9.6 文档)
字符串是一种序列类型,支持序列类型的各种操作
[字符串的方法](内置类型 — Python 3.9.6 文档)
字符串支持许多变换和查找的方法
[格式化字符串字面值](2. 词法分析 — Python 3.9.6 文档)
内嵌表达式的字符串字面值
[格式字符串语法](2. 词法分析 — Python 3.9.6 文档)
使用str.format()进行字符串格式化
[printf风格的字符串格式化](内置类型 — Python 3.9.6 文档)
这里详述了使用%运算符进行字符串格式化。