eg1:open('c:\temp\tex.t','a+')報錯:因為沒有加r,\t會被當做轉義字元(制表符)
改進如下:
open('c:\\temp\\tex.t','a+') 或者------兩個斜杠
open(r'c:\temp\tex.t','a+')------------r代表原始字元串,關閉轉義機制
字元串的基本操作
1, + 連接配接
2, * 重複
3, s[i] 索引index
4, s[i:j] 切片slice
5, for循環周遊
###############
1,連接配接 + 前後連個對象必須都是字元串(如果是其他類型,需要轉換)str()、int()、float()
eg1:
>>> s1="www.baidu.com"
>>> s2="ronbin"
>>> print s1,s2
www.baidu.com ronbin---------逗号,在同一行輸出,逗号預設的輸出就是空格
>>> s3=s1+s2
>>> print s3
<a href="http://blog.51cto.com/tenderrain/1621297">www.baidu.comronbin----------完整連接配接</a>
eg2:
>>> i=12
>>> s1="times"
>>> print i+s1--------------類型不同無法直接連接配接
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> print str(i)+s1
12times
>>> print str(i)+' '+s1
12 times
2,重複 *
>>> list1=[1]*5
>>> list1
[1, 1, 1, 1, 1]
>>> list2=[1,'3',67.09]*3-------相當于3個清單做的連接配接(将清單擴大了3倍)
>>> list2
[1, '3', 67.09, 1, '3', 67.09, 1, '3', 67.09]
>>> s='a'
>>> s1=s+s+s+s
>>> s1
'aaaa'
>>> s1=s*4
>>> s1='a'*4
當需要連接配接的字元串相同時, * <======> n個+
3,索引
>>> s2='abcdefd'
>>> ch=s2[3]----------[3]被稱之為索引index,index從下标為0 開始
>>> ch
'd'
方法:string_name[index]
4,切片
方法:string_name[start_index:stop_index]
start_index:要取字元串的首字母的index
stop_index:要取字元串的尾字母的index+1
>>> sub=s2[1:5]
>>> sub
'bcde'
start_index省略,則從開始切
>>> sub=s2[:5]
'abcde'
stop_index省略,則切到最後
>>> sub=s2[1:]
'bcdefd'
start_index和stop_index都省略,則全切(又相當于沒切)
>>> sub=s2[:]
'abcdefd'
start_index和stop_index可以是負數
-1代表最後一位,-2代表倒數第二位,以此類推
>>> s2[5]
'f'
>>> s2[-2]
>>> s2[-4:-1]
'def'
>>> s2[-4:]
'defd'
start_index < stop_index ----> ok step:正數 or 負數
>>> s2[1:4]
'bcd'
>>> s2[4:1]
''-------空值
>>> s2[-1:-4]
''--------空值
string[i:j:step]
step:切的時候順序往後加1還是順序往前減1,即空值了方向(預設step=1)
>>> s2[-1:-4:-1]
'dfe'
>>> s2[4:1:-1]
'edc'
i<j step正數
i>j step負數
eg:實作字元串的逆序輸出
>>> s='www.baidu.com'
>>> s[-1::-1] -------ok,預設到方向的終點
'moc.udiab.www'
>>> s[-1:0:-1]--------no,少一個字母
'moc.udiab.ww
5,for循環周遊字元串
>>> print s[0]
w
>>> print s[1]
>>> print s[2]
>>> print s[3]
.
>>> for ch in s:---每次循環将s中的字元賦給ch
... print ch---如果加逗号則是統一行輸出
...
b
a
i
d
u
c
o
m
>>> for ch in s:
... print ch,
w w w . b a i d u . c o m----同一行輸出
本文轉自Tenderrain 51CTO部落格,原文連結:,http://blog.51cto.com/tenderrain/1621297如需轉載請自行聯系原作者