1.基本操作
1)使用+連接
>>> "abc"+"efg"
'abcefg'
>>> a="abc"
>>> b="efg"
>>> c=a+b
>>> c
'abcefg'
>>>
2)使用*重復
>>> "abc"*3
'abcabcabc'
>>> "abc\n"*3
'abc\nabc\nabc\n'
>>> print("abc\n"*3)
abc
abc
abc
>>>
3)字符串不能使用+連接數字
>>> "abc"+9
Traceback (most recent call last):
File "", line 1, in
"abc"+9
TypeError: Can't convert 'int' object to str implicitly
4)使用for來迭代
>>> a="abcdefg"
>>> for x in a:print(x)
a
b
c
d
e
f
g
5)使用in來找字符,后面我們還會說到str.find()方法,跟in非常相似
>>> a="abcdefg"
>>> "h" in a
False
>>> "abc" in a
True
>>>
2.索引與分片
1)索引
字符串可以通過索引來查找想要的字符,而且索引分成正負,通過不同的查詢方向來查找
>>> a="abcdefg"
>>> a[0],a[1],a[5]
('a', 'b', 'f')
>>> a[-2],a[-1],a[-5]
('f', 'g', 'c')
>>>
2)分片,說白了就是提取字符串的某些部分,而且當索引使用負數則返回空
>>> a="abcdefg"
>>> a[1:]
'bcdefg'
>>> a[1:3]
'bc'
>>> a[-1:3]
''
>>>
我使用一張圖來說明一下這個分片是怎么分的,以a[1:3]為例子
從圖上面我們比較清楚情況,對于1,他是把指針放到a的后面,從b開始數,a不算,然后后面的3,他是把指針放到d的前面,不算d
所以返回的只有bc
還有需要特殊說明一些例子:
a[1:]從第二個字符開始到結束
a[:3]從第一個字符開始到第二個字符,也就是第三個字符前
a[:]復制所有字符
其實還有第三個參數,步進,說白了,就是跳著選,就是要看跳幾個而已
>>> a="abcdefghijklmn"
>>> a[2:8:2]
'ceg'
>>> a[::3]
'adgjm'
>>>
a[2:8:2]代表從第三個字符開始抽取,到第八個之前也就是第七個,然后每隔2個挑一個出來
a[::3]代表從所有字符中每隔3個挑一個出來
如果步進是復數,則反著挑
3.字符串轉換str()與repr()
>>> str(42)
'42'
>>> repr(43)
'43'
區別,在使用print的時候,repr多了一對單引號
>>> print(str('aaa'),repr('aaa'))
aaa 'aaa'
4.修改字符串
字符串是不可以修改的,那么怎么修改呢?
其實過程是我們從一個字符串里面抽取某些字符,然后在加上其他的字符,形成新的字符串對象
>>> a="abcdefghijklmn"
>>> id(a)
24338048
>>> b=a[1:5]+" \n this is a str"
>>> id(b)
24342896
>>> b
'bcde \n this is a str'
>>> print(b)
bcde
this is a str
>>>