print("""\Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to""")
如果需要转义的话,可以使用反斜杠 \
In [22]: site4 = "www.\"flydean\".com"In [23]: site4Out[23]:'www."flydean".com'
如果你不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即可:
In [24]: print(r"www.\"flydean\".com")www.\"flydean\".com
字符串通过 + 来进行连接,也可以使用 * 来进行复制:
In [25]: "www" + "flydean.com"Out[25]:'wwwflydean.com'In [26]: "www.flydean.com"* 3Out[26]:'www.flydean.comwww.flydean.comwww.flydean.com'
相邻的两个或多个 字符串字面值 (引号引起来的字符)将会自动连接到一起.
In [27]: "www""flydean.com"Out[27]:'wwwflydean.com'
注意,上面的自动连接操作,只能对两个字面量有效,如果是变量的话则会报错。
字符串会被看做是由字符组成的数组,所以可以通过string[index]的形式来进行访问。
In [28]: site5 = "www.flydean.com"In [29]: site5[3]Out[29]:'.'
如果索引是负数的话,会从右边开始计数:
In [30]: site5[-3]Out[30]:'c'
因为-0 和 0 是一样的,所以负数是从 -1 开始的。
除了索引,字符串还支持 切片。索引可以得到单个字符,而 切片 可以获取子字符串:
In [31]: site5[1:5]Out[31]:'ww.f'
注意切片的开始总是被包括在结果中,而结束不被包括。这使得 s[:i] + s[i:] 总是等于 s
In [33]: site5[:4]+site5[4:]Out[33]:'www.flydean.com'
切片的索引有默认值,省略开始索引时默认为0。
如果索引超出了字符串的范围就会发送越界错误。
In [34]: site5[100]---------------------------------------------------------------------------IndexErrorTraceback (most recentcalllast)<ipython-input-34-fc1f475f725b> in <module>()----> 1site5[100]IndexError:stringindexoutofrange
但是,切片中的越界索引会被自动处理:
In [36]: site5[:100]Out[36]:'www.flydean.com'
因为字符串是不可变的,所以我们不能通过索引的形式来对字符串进行修改:
In [37]: site[2] = "A"---------------------------------------------------------------------------TypeErrorTraceback (most recentcalllast)<ipython-input-37-9147d44bd80c> in <module>()----> 1site[2]="A"TypeError:'str'objectdoesnotsupportitemassignment