單引號和雙引號都能表示字符串。區別在于轉義的時候。
如果懶得加轉義字符,可以通過在字符串前面加上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 ) |