Python 字符串相關操作與方法
阿新 • • 發佈:2019-05-01
購物車 原因 它的 不能 字母 大小寫 除開 join {0}
Python 字符串相關操作與方法
1. 字符串的索引與切片
- 字符串從左至右是有順序的,我們通過索引來確定它的位置。索引類似C語言中的下標
- s[index]
- 切片是通過索引(索引:索引:步長)截取字符串的一段,形成新的字符串
- s[start_index : end_index+1 : step]
- 顧頭不顧腚(結尾得往下取一位)
- 倒序,需要使用反向步長s[::-1]
- 索引無論使用正數還是負數都僅表示位置。這裏是否使用反向步長需要註意一下
print(a[-1:0]) #不能從-1 到 0 print(a[-1:-5]) #不能從-1 到 -5 print(a[-1:-5:-1]) #以上可以加上步長 #倒序 print(a[-5:-1]) #或從左向右 原因在於默認步長為1,所以不能直接從右向左
- 註意:索引、切片出來的數據與原來是沒有聯系的。
s2 = s1[0]
s2 與 s1 沒有聯系
s2的內容是另開辟的
2. 字符串的常用操作方法
註意: 新字符串與原字符串沒有聯系,這些操作都是產生一個新的字符串。
count
- 計算字符串中參數出現的個數
res = a.count("a") res = a.count("a",4,8) #對res的切片內容進行a的計數
startswith 與 endswith 判斷以什麽為開頭,什麽為結尾
a = 'abcdefghijklmnopqrstuvwxyz' print(a.startswith("a")) 返回True print(a.startswith("d")) 返回False print(a.startswith("d",3,6)) 返回True print(a.endswith("z")) 返回True
- split
- 形成一個不包含這個分割元素的列表(默認按照空格分格,返回一個鏈表)
- str --->list
a = 'abcdefghijklmnopqrstuvwxyz'
b = a.split()
print(b,type(b))
##['abcdefghijklmnopqrstuvwxyz'] <class 'list'>
c = a.split('f')
print(c,type(c))
##['abcde', 'ghijklmnopqrstuvwxyz']
join (iterate)非常好用 聯合
- list ---> str
- iterate 是可叠代對象
- 前提:使用join方法的對象必須是字符串!!!
s1 = 'alex' s2 = '+'.join(s1) print(s2) #a+l+e+x l1 = ['taibai','nvshen','wuchao'] s3 = ':'.join(l1) print(s3) #taibai:nvshen:wuchao
format的三種玩法,格式化輸出
res = '{}{}{}'.format('naqin',18,'male')
naqin18male
res = '{1}{0}{1}'.format('naqin',18,'male')
18naqin18
res = '{name}{age}{sex}'.format(name='naqin',age=18,sex='male')
naqin18male
strip 移除字符串頭尾指定的字符
- 默認去除空格,tab,\t,\n
- 去除指定的字符 (從前往後從後往前,遇到一個清除一個,若遇到不含參數內的字符時停止)
s4 = 'rre太r白qsd' s5 = s4.strip('rqsed') print(s5) #太r白
- 只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
replace
- replace方法不是對原來的字符串做改變,而是新產生一個改變後的字符串,所以依舊需要賦值替換。
msg = 'alex 很nb,alex是老男孩教育的創始人之一,alex長得很帥'
msg1 = msg.replace('alex','太白')
#太白 很nb,太白是老男孩教育的創始人之一,太白長得很帥
msg1 = msg.replace('alex','太白',1) 默認全部替換
- is系列
- 應用:購物車
a.isalnum() #字符串由字母或數字組成
a.isalpha() #只由字母組成
a.isdecimal() #只由十進制組成
- find() 返回找到的元素的索引,找不到返回-1
- index()返回找到的元素的索引,找不到報錯
- upper(所有字母大寫,中文或數字忽略) 、lower(所有字母小寫)
- 應用:驗證碼(不區分大小寫)
- capitalize(首字母大寫)、swapcase(大小寫翻轉)、title(每個單詞大寫)
- center
st = 'runoob'
print(st.center(50,'*'))
**********************runoob**********************
Python 字符串相關操作與方法