資源簡介 #3.1字符串#字符串特性1.字符串有限序列性字符串是一種線性表結(jié)構(gòu),它的元素個數(shù)是有限的。字符串中的每個元素都可以用正負(fù)兩種索引獲取。2.字符串可比性當(dāng)字符串中的字符來自同一字符集(以ASCII為例)時(shí),可以按照碼值進(jìn)行比較。比較規(guī)則是從左至右,依次比較兩個字符串中對應(yīng)位置上的字符碼值。#字符串基本操作#1.字符串連接s = "Hello" + ' ' + "World"#運(yùn)行結(jié)果:s = "Hello World"#2.字符串復(fù)制s = "ha"*3#運(yùn)行結(jié)果:s = "hahaha"#3.子串(存在性)判斷print("hel" in "hello")#運(yùn)行結(jié)果:True#4.字符串切片 s[首:尾:步長] 含頭不含尾s = "千山鳥飛絕,萬徑人蹤滅"print(s[::-1])print(s[:-5:-2])#運(yùn)行結(jié)果:滅蹤人徑萬,絕飛鳥山千 滅人#5.len(s)求字符串長度s = "Hello World"print(len(s))#運(yùn)行結(jié)果:11#6.s.find(y)#返回字串在字符串中首次出現(xiàn)的位置(數(shù)值類型),若找不到返回-1num = "hello".find("ell")print(num)#運(yùn)行結(jié)果:1#7.s.split(sep[,num]) #根據(jù)sep分割字符串s,num指定切分個數(shù),生成結(jié)果為列表類型,sep參數(shù)默認(rèn)為空格s = "1,2,3,4,5,6"s1 = s.split(',')s2 = s.split(',',3)print(s1,s2)#運(yùn)行結(jié)果:['1', '2', '3', '4', '5', '6'] ['1', '2', '3', '4,5,6']#8.s.replace(old,new[,max])#將字符串s中的old用new替換掉,max定義最大替換次數(shù)s = "is is is is"s1 = s.replace("is","was")s2 = s.replace("is","was",3)print(s1,s2)#運(yùn)行結(jié)果: was was was was was was was is#9.大小寫轉(zhuǎn)換#s.upper() 全部小寫轉(zhuǎn)大寫 #s.lower() 全部大寫轉(zhuǎn)小寫s = "abcDEF"s1=s.upper()s2=s.lower()print(s1,s2)#運(yùn)行結(jié)果: ABCDEF abcdef#10.s.count(sub) 統(tǒng)計(jì)sub在字符串s中出現(xiàn)的次數(shù)s = "is is is is"print(s.count('is ')) #注意空格#運(yùn)行結(jié)果:3#11.iter.join(s) #用iter對s做分隔s = '12345's1 = ','.join(s)print(s1)#運(yùn)行結(jié)果:1,2,3,4,5#12.s.strip(iter) #刪除首尾的iter字符,iter默認(rèn)為空格s = " a b c d e"s1=s.strip()print(s1)x = "_a b c d e"s2=s.strip("_")print(s2)#運(yùn)行結(jié)果:a b c d e a b c d e#字符串補(bǔ)充案例#案例二:違章判斷#書本案例代碼優(yōu)化import csvf = open("./shujujiegou/車輛號碼.csv",'r') #文件打開方式 r(只讀),w(新建),a(追加),+,b(二進(jìn)制)f_csv = csv.reader(f) #讀取CSV文件內(nèi)容,結(jié)果為可迭代對象f_csv_list = list(f_csv)print(f_csv_list[0][0],' ',f_csv_list[0][1])for row in f_csv_list[1::]: #逐行枚舉車輛信息 pos = False #默認(rèn)為外地車 if "A"<=row[0][1]<="Z" and row[0][1] == "B": #檢查車牌的歸屬地 pos = True #確認(rèn)為本地車 if pos == False and 6!=w!=7: print(row[0],' ',row[1]) if pos == True: car_list = list(row[0])[::-1] #將車牌轉(zhuǎn)為list后逆序 for i in car_list: if '0'<=i<='9': num = int(i) break num = False if num == False: #車牌內(nèi)沒有數(shù)字 continue elif num == 0 or num == 5: t = 5 else: t = min(num,10-num) if t == int(row[3]): print(row[0],' ',row[1])f.close()#查找電話號碼#案例三:通過正則表達(dá)式實(shí)現(xiàn)import rephone = pile(r'\d\d\d\d-\d\d\d\d\d\d\d\d')x = input("請輸入一個字符串:")mo = phone.search(x) #查找x中第一個符合phone的格式的匹配if mo: print("電話號碼為:",mo.group())else: print("沒有找到電話號碼")擴(kuò)展:1.匹配特定字符例:[Pp]ython 匹配結(jié)果 Python,python2.匹配區(qū)間例1:[a-z]hs 匹配結(jié)果 ahs,bhs...zhs例2:[a-zA-Z0-9]hs 匹配結(jié)果 ahs,Fhs,8hs3.快捷鍵 %d=[0-9] %w=[a-zA-Z0-9] %D=[^0-9] %W=[^a-zA-Z0-9]例1:%d%d 匹配結(jié)果 23,76例2:%w%d 匹配結(jié)果 a5,f4,684.擴(kuò)展 {m} {m,n}例1:abc{2} 匹配結(jié)果 abcc例2:abc{2,5} 匹配結(jié)果 abcc...abccccc例3:abc{2,} 匹配結(jié)果 abcccc(至少兩個)5.擴(kuò)展快捷鍵 *={0,} +={1,} ={0,1}例1:ab*c 匹配結(jié)果 ac,abbbc,abbbbbbbc例2:ab+c 匹配結(jié)果 abc,abbbc例3:ab c 匹配結(jié)果 ac,abc#案例四:行程編碼def readImage(filename=''): from PIL import Image im = Image.open(filename) im = im.convert('1') # 以黑白的方式讀取文件,黑0,白255 im_list ='' pix = im.load() # 將圖片加載至pix變量 width = im.size[0] # size中有兩個參數(shù),第1個為圖像寬度值 height = im.size[1] # 第2個參數(shù)為圖像高度值 #im.show(filename) for x in range(width): #s = '' for y in range(height): im_list += str(pix[x,y]//255) # 根據(jù)像素點(diǎn)坐標(biāo)獲得該點(diǎn)的 RGB 值 #s += str(pix[x,y]//255) #print(s) #用于逐行輸出,使結(jié)果更加直觀 return im_listdef Run_Length_Encoding(im_list=''): new_list = '' num = 0 pre = im_list[0] for i in range(len(im_list)): if im_list[i] == pre: num += 1 if i == len(im_list) - 1: new_list += str(num)+ ' ' + pre elif i != len(im_list) - 1: new_list += str(num)+ ' ' + pre + ' ' num = 1 pre = im_list[i] return new_list#主程序import pickleim_list1 = readImage('./shujujiegou/巖.bmp') #讀取圖像并轉(zhuǎn)為0,1列表f=open('./shujujiegou/圖像編碼.txt','wb')pickle.dump(im_list1, f) # 將列表對象轉(zhuǎn)換為二進(jìn)制文件f.close()im_list2=Run_Length_Encoding(im_list1) #利用行程編碼壓縮內(nèi)容print(im_list2)f=open("./shujujiegou/行程編碼.txt","wb")pickle.dump(im_list2,f)f.close() 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫