单引号和双引号都能表示字符串。区别在于转义的时候。
如果懒得加转义字符,可以通过在字符串前面加上r。例如:
1
|
print r 'C:\some\name' |
通过在字符串里面添加反斜杠来不换行。
1
2
3
4
5
|
print """\ Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """ |
字符串通过加号来连接,并可以通过乘号来翻倍。
字符串也可以通过写在一起来连接,但是不能用在变量上面:
1
|
'Py' 'thon' |
字符串可以像数组一样访问,0代表开始字符。特别的是,-1代表最后一个字符,-2表示倒数第2个字符,依次得到结果。
字符串可以切片访问。比较特别的是使用负数来切片。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
s = "abcde" s[ 0 ] s[ - 1 ] s[ - 5 ] s[: - 1 ] #去掉最后一个字符,比如换行符 + - - - + - - - + - - - + - - - + - - - + - - - + | P | y | t | h | o | n | + - - - + - - - + - - - + - - - + - - - + - - - + 0 1 2 3 4 5 6 - 6 - 5 - 4 - 3 - 2 - 1 |
切片访问越界会得到一个空集。无需做访问控制。
对于单个字符时无法赋值的,因为字符串是不可变的。如果需要一个不同的字符串,那就creat一个新的字符串吧,使用切片能够很容易达到这点。
内置函数len返回字符串的长度。
用encode和decode来问字符串编码解码。(关于编码类型的问题,需要专门开一个文件来讨论)
常用方法:
startswith 检测开头
示例:
1. a = 'leonis'
if a.startswith('le'):
print ‘le'
endswith 检测结尾
示例:
1
2
3
|
1. a = ‘leonis' if a.endswith(‘ is '): print ‘ is ' |
in 检测是否为其中一部分
示例:
1
2
3
|
1. a = ‘leonis' if ‘o' in a: print ‘a' |
find 查询包含
示例:
1
2
3
|
1. a = ‘leonis' if a.find(‘on') ! = - 1 : print (‘on') |
join 连接字符串
示例:
1.
1
2
|
a = ' ' <br>mylist = [ 'Brazil' , 'Russia' , 'India' , 'China' ] print a.join(mylist) |
2.
1
2
|
mylist = [ 'Brazil' , 'Russia' , 'India' , 'China' ] print ‘_'.join(mylist) |
split 拆分字符串
1.
1
2
3
|
b = 'my..name..is..leonis' print b print b.split( '..' ) |
2.
1
2
3
|
b = ‘my..name.. is ..leonis' print b print b.split(‘..', 1 ) |