3——字串型別(增刪改查)
阿新 • • 發佈:2018-11-04
字串
增
查 st.find(字元,StartIndex,EndIndex) # 返回查詢到的字串的索引位置,如果未找到將返回-1
st.count(字元) # 返回查詢並統計這個字串的數量 st.index(字元) # 返回查詢的字串的索引位置,如果未找到將報錯,推薦使用str.find st.isdigit() # 判斷當前字串是否由純數字組成返回True 或 False st.isalpha() # 判斷當前字串是否由純字元組成 返回True 或 False st.islower() # 判斷當前字串的所有英文字母是否全為小寫字母 返回True 或 False st.isupper() # 判斷當前字串的所有英文字母是否全為大寫字母 返回True 或 False st.startswith('字元') # 判斷當前字串是否為'字元'開始 返回True 或 False st.endswith('字元') # 判斷當前字串是否為'字元'結尾 返回True 或 False
strip()
刪除首和尾的空格 str.lstrip()
刪左首空格 str.rstrip()
刪右尾空格
st.lower() 將當前字串的英文全部修改為小寫字母
st.upper() 將當前字串的英文全部修改為大寫字母
st.capitalize()
如果當前字串的第一個字元為不為空的英文字母,則將該英文字母大寫,否則不進行任何操作
>>> st = 'sahdjgk'
>>> st.capitalize()
'Sahdjgk'
>>>
st.split()
以列表方式分割字串
>>> st
'sak sdjgio jkas'
>>> st.split()
['sak', 'sdjgio', 'jkas']
>>>
st.title()
將當前字串中的每一個分段的英文字母首字母大寫
>>> st= 'dsadasd weqewq dasdas,dadsadas,dasda' >>> st.title() 'Dsadasd Weqewq Dasdas,Dadsadas,Dasda' In [1]: st = 'akdjsoie dkjsai sjig' In [2]: st.split('j',3) #以字元'j'來進行分割3次 Out[2]: ['akd', 'soie dk', 'sai s', 'ig']
st.replace(OldStr,NewStr,count) 文字替換,執行後將舊字串替換為新的字串且可以指定次數
In [5]: st = 'sjierijer'
In [6]: st.replace('i','gogo',1)
Out[6]: 'sjgogoerijer'
字串的拼接 str1 + str2 + str3
In [1]: 'aaaa' + 'bbbb'
Out[1]: 'aaaabbbb'
格式化字串 ' %s %s %s '.(str1,str2,str3) %s是佔位符
In [2]: ' %s %s ' % ('aaa','ccc')
Out[2]: ' aaa ccc '
使用join
’ ’.join([str1, str2, str3])
In [3]: '|||'.join(['aa','bb','cc'])
Out[3]: 'aa|||bb|||cc'
使用 format
' {} {} {} '.format(obj1,obj2,obj3)
' {0} {1} {2} '.format(obj1,obj2,obj3) #可以通過索引改變順序
' {n0} {n1} {n2} '.format(n1=obj1,n0=obj2,n2=obj3)
字串格式化
瞭解
>>> ' %d ' %12 #數字
' 12 '
>>> ' %f ' %12.1 #浮點數
' 12.100000 '
>>> ' %c ' %97 #ASCII字元
' a '
>>> ' %o ' %9 #8進位制
' 11 '
>>> ' %x ' %15 #16進位制
' f '
>>> ' %e ' %15 #科學計數法
' 1.500000e+01 '
>>>
>>> '%-6.3f'% 5456.3565
'5456.356'
>>> '%+-6.3f'% 59 #‘+’能夠顯示符號
'+59.000'
>>> '%5s'%'ab' 格式化長度
' ab'
掌握
>>> print( '%s' % '123' ) #以整型格式輸出
123
>>> print( '%r' % '123' ) #以字串格式輸出
'123'
format瞭解
>>> '{:.2f}'.format(1.2222) #保留小數點後2位
'1.22'
>>> '{n1:.2f}'.format(n1=1.2222)
'1.22'
>>> '{n1:.2%}'.format(n1=1.2222) #百分比格式
'122.22%'
>>> '{0:x}'.format(20) #進位制轉換的時候{0:進位制}
'14'
>>> '{0:o}'.format(20)
'24'
>>>
' {a:<10} ’.format(a=12.3,b=13.44) 左對齊,長度為10
' {a:0<10} '.format(a=12.3,b=13.44) 數字補x (填充右邊, 寬度為4)
' {a:0>10} ’.format(a=12.3,b=13.44) 右對齊...
' {a:0^10} '.format(a=12.3,b=13.44) 兩邊對齊...
'{{ hello {0} }}'.format('python’) 轉義{和}符號
f = ' hello {0} '.format
f('python’) 這裡可以把format當作一個函式來看
字元前面加上 \ ,字元就不再表示字元本身的意思,表示ASCII碼中不能顯示字元,常見有下:
In [1]: a = '''asdf
...: fdsa'''
In [2]: a
Out[2]: 'asdf\nfdsa'
In [3]: print(a) #\n 換行
asdf
fdsa
In [4]: print('asdf\tsdf') #\t 水平製表符
asdf sdf
In [5]: print('asdf\bsdf') #\b 退格
asdsdf
In [6]: print('asdf\rsdf') #\r 回車,當前位置移到本行開頭
sdff
In [7]: print('asdf\rsdf') #\r 回車,當前位置移到本行開頭
asdf\rsdf
In [8]: print('asdf\'rsdf') #\’ 代表一個單引號,同樣的 “ ? 等符號也可以這麼輸出
asdf'rsdf
In [9]: print('asdf\0rsdf') #\0 代表一個空字元
asdfrsdf
In [10]: print('asdf\arsdf') #\a 系統提示音
asdfrsdf
In [11]: print(r'asdf\arsdf') #在python中如果要去掉字串的轉義,只需要在字串前面加上 r
asdf\arsdf