字元串定義
name = “”或name = ‘’或name = str()
保留文本格式(需要用三引号,''''''或"""""")
字元串的下标索引(中括号裡的下标索引 需要在字元串序列數中,超出會報錯;若從右到左算從-1開始,都是等價的,實際開發都是從0開始),如
my_str = 'hello'
ret = my_str[2]
print(ret)
字元串切片(切片是指對操作的對象截取其中一部分的操作)
切片的文法:[起始:結束(開區間):步長],一般情況步長不寫,預設為1
a = 'abcdef'
print(a[-1:-4:-2])#-1:從右到左;-4:從右到左取到第四位,即c;-2:步長為右到左2位
取abc -> a[0:3] 或者 a[:3],若從頭開始取,0可以省略不寫
print(a[0:3])
字元串的方法
a = 'abcdef'
1、find(查找字元串裡的字元,傳回其下标索引)
查詢到對應的字元串會傳回一個下标索引,若沒有,則傳回-1
ret1 = a.find('d')
print(ret1)
print(a.find('a',1))#從下标1開始,查找在字元串裡第一個出現的子串:傳回結果-1
2、index用法與find一樣,index若找不到會異常
19、rindex 類似index(),這是從右到左查找,找到沒事沒找到報異常
18、rfind 類似find()方法(從左到右查找),這是從右到左開始找(索引編号還是原來的左到右),兩者用法看字元串長度決定用哪個(查找速度、性能)
a = 'abcdefabcd'
print(a.rfind('b'))#若沒找到報-1
3、count(計算字元串中某個字元出現的次數,若沒找到則0)
格式:str.count("char", start,end)
char —— 為要統計的字元(可以是單字元,也可以是多字元)。
star —— 為索引字元串的起始位置,預設參數為0。
end —— 為索引字元串的結束位置,預設參數為字元串長度即len(str)。
print(a.count('a'))
print(a.count("i",2,5)) #star值為2,end值為5
4、replace(把字元串裡的某個字元進行更改)
a = 'abcdefghaa'
ret4 = a.replace('a','ds',1)#把a修改成ds,隻修改一次,如删掉後面的1,則代表更改字元串裡的所有a
print(a)#列印a不是修改後的字元串,字元串是不變的,隻能重新定義一個變量
print(ret4)
print(a.replace('a','ds',1))#等價于print(ret4)
5、split(以某個字元為界分割字元串,分割後此字元串不存在;分割後産生一個新的資料類型:清單)
str.split() 預設以空格,換行(\n),制表符\t分割
str.split('字元串'):以字元串為分割
str.split('字元串',2)分割以前2次出現的字元串為分割
a = 'abacdefandafinad'
ret5 = a.split('a')
print(ret5)
22、splitlines 找到字元串裡的\n,預設以此為界分隔字元(\n會自動删掉),傳回一個包含各行作為元素的清單
splitlines() 方法文法:S.splitlines([keepends=False])
keepends -- 在輸出結果裡是否去掉行界符('\r', '\r\n', \n'等),預設為 False,不包含行界符,如果為 True,則保留行界符。
a = 'abcd\nedsd\ndk\nds'
ret = a.splitlines()
print(ret)
print(type(ret))
6、capitalize 把字元串的第一個字元大寫
a = 'sadkjhkj'
print(a.capitalize())#實則變量a還是a,沒有改變
7、title把字元串裡的每個單詞首字母大寫
a = 'a bc de f'#若用空格分開,則認為是多個單詞,否則當做一個單詞處理
print(a.title())
10、lower 轉換字元串中的大寫字元為小寫,小寫不變
a = 'NXCBdefandafinad'
print(a.lower())
11、upper把字元串中的小寫全部轉換成大寫
a = 'abacdefanXdafinad'
print(a.upper())
8、startswith 檢查字元串是否以某些字元開頭,是則傳回True,否則傳回False
a = 'abacdefandafinad'
print(a.startswith('aba'))
9、endswith 檢查字元串是否以某些字元結尾,是則傳回True,否則傳回False
a = 'abacdefandafinad'
print(a.endswith('nad'))#區分大小寫
可能會上傳個檔案是MP4字尾結束,此時需要endswith判斷
12、ljust 傳回一個原來字元串左對齊,并使用空格填充至長度width的新字元串
a = 'what'
ret1 = a.ljust(10,'x') 原來的字元串先左對齊,如果不夠10位,用x表示,占據10個位置,10看業務需求決定
print(ret1)
13、rjust(跟ljust用法一緻)
a = 'what'
ret2 = a.rjust(10,'x') #原來的字元串先右對齊,如果不夠10位,用x表示,占據10個位置
print(ret2)
設想左邊三個1右邊三個1中間abcd
14、center 居中
a = 'abcd'
print(a.center(10,' '))#若不對稱則預設左邊少一個
15、lstrip 删除字元串裡字元左邊的空格,包括\n和\t(\t指的是Tab鍵)(中間的空字元不去除)
a = ' dsk k '
print(a.lstrip())
也可以把字元左側的一些字元删除掉,如
a = '11123abdc'
print(a.lstrip('12'))#不填則預設去除空格,填則隻能填最左邊的某些字元,詞句去除了左邊的1和2
16、rstrip 去除字元串最右邊的空格或一些字元
a = 'dksdl33443k'
print(a.rstrip('34k'))#去掉字元串中的3和4、k
17、strip 去除字元串兩邊的空格或字元
a = '23222abcd1x21212'
print(a.strip('123'))#去除兩邊的123
20、partition 把字元串以某個字元分割(從左到右,找到第一個e,以此為界分割)成三部分,字元串前、字元串、字元串後
a = 'abcdefghe'
ret = a.partition('e')
print(ret)#産生新的資料類型
print(type(ret))
23、isalpha 判斷一個字元串裡是否全部是字母,是則傳回布爾值True,否則False
a = 'abcdefghe'
ret = a.isalpha()
print(ret)
24、 isdigit判斷字元串裡是否全是數字,是則傳回布爾值True,否則False
a = '0435435'
ret = a.isdigit()#網站判斷密碼過于簡單就是用這個來判斷的
print(ret)
25、isalnum 字元串裡的所有字元都是字母或數字則傳回True,否則False
a = 'abcd213efghe'
ret = a.isalnum()
print(ret)
26、isspace 字元串中隻包含空格,則傳回 True,否則傳回 False
27、join 字元串中每個元素後面插入str,構造出一個新的字元串
用人話說:把一個清單裡的元素合在一起,構成一個新的字元串
定義一個清單(清單裡的叫元素)
my_list = ['li','baoc','dabei']
ret = ' '.join(my_list)#引号裡輸入什麼,列印出來的字元串裡的字元(原來是清單裡的元素)就以什麼