python基礎資料型別之字串操作
阿新 • • 發佈:2018-12-12
1.字串切片
ps:字串是不可變的物件, 所以任何操作對原字元 是不會有任何影響的
s1 = "python最簡潔" print(s1[0]) print(s1[1]) print(s1[2]) print(s1[3]) print(s1[4]) print(s1[5]) print(s1[6]) print(s1[7]) print(s1[8]) print(s1[9]) # 會報錯 print(s1[-1]) # 倒數第一個 print(s1[-2]) # 倒數第二個
語法一: str[start: end]
規則: 從start開始擷取. 擷取到end位置. 但不包括end
s2 = "python最簡潔" print(s2[0:3]) # 從0獲取到3.不包含3. 結果: pyt print(s2[6:8]) # 結果 "最簡"" print(s2[6:9]) #最大是8,但實際顧頭不顧尾,想要取到8必須給到9 print(s2[6:10]) # 如果右邊已經過了最大值. 相當於獲取到最後 print(s2[4:]) # 如果想獲取到最後. 那麼最後一個值可以不給. print(s2[-1:-5]) # 從-1獲到-5 這樣是獲取不到任何結果的.從-1向右數,你怎麼數,也數不到-5 print(s2[-5:-1]) # 取到資料了. 但是顧頭不顧尾. 怎麼取最後一個呢?print(s2[-5:]) # 什麼都不寫就是最後了 print(s2[:-1]) # 這個是取到倒數第一個 print(s2[:]) # 原樣輸出
語法二: str[start:end:step]
start: 起始位置
end: 結束位置
step:步
跳著取, 步長
如果是整數, 則從左往右取. 如果是負數. 則從右往左取. 預設是1
print(s2[1:5:2]) #從第一個開始取,取到第5個,每2個取1個, print(s2[:5:2]) # 從頭開始到第5個,每2個取1個 print(s2[4::2]) # 從4開始取到最後,每2個取1個print(s2[-5::2]) # 從-5取到最後,每2個取1個 print(s2[-1:-5]) # -1:-5什麼都沒有,因為從左往右獲取的 print(s2[-1:-5:-1]) # 步長是-1. 這時就從右往左取值 print(s2[-5::-3]) # 從倒數第5個開始. 到最開始. 每3個取1個, 結果oy
2.字串大小轉換
str.capitalize()# 將字串的第一個字母變成大寫,其他字母變小寫 str.lower() # 全部轉化成小寫 str.upper() # 全部轉化成大寫
3.字串去空格處理
str.strip() # 去掉兩邊空格 str.lstrip() # 去掉左邊空格 str.rstrip() # 去掉右邊空格
4.字串替換
str.replace(old,new) # old:原來的str new:需要替換的str
5.字串切割
str.split(",") # 根據","分割,返回新的列表
格式化輸出幾種方式:
%s,%f,%d
%s 用於字串輸出
print('%s' % 'hello world') hello world
%f 用於小數輸出
print('%f' % 1.234) 1.234000
%d. 用於整數輸出
print('%d' % 4) 4
其他方法
print("我叫{}, 今年{}歲 , 我喜歡{}".format("周杰倫", 28, "周潤發")) # 按位置格式化輸出 print("我叫{0}, 今年{2}歲 , 我喜歡{1}".format("周杰倫", "周潤發", 28)) # 指定位置 print("我叫{name}, 今年{age}歲 , 我喜歡{singer}".format(name="周杰倫", singer="周潤發", age=28)) #指定關鍵字
6.字串查詢
str.startswith("xx") # 判斷是否以"xx"開頭 str.endswith("xx")) # 判斷是否以"xx"結尾 str.count("xx") # 查詢str中"xx"出現的次數 str.find("xx") # 查詢str中"xx"出現的位置;如果"xx"不在str中,返回-1 str.index("xx") # 求索引位置,找不到會報錯
7.字串條件判斷
str.isalnum() #是否字母和數字組成 str.isalpha() #是否是字母組成 str.isdigit() #是否是數字組成
...