1. 程式人生 > >字串[內建函式]

字串[內建函式]

字串操作方法
str = 'xxx'

1.大小寫轉換操作
str.upper()大寫
str.lower()小寫
str.title()所有單詞 首字母大寫 其他字母小寫
str.capitalize()首字母大寫 其他字母小寫
swapcase() 大小寫轉換

2.is判斷
str是否是指定格式 返回True/False
a.isdigit()整型數字

如果字串只包含數字則返回 True 否則返回 False..

a.isdecimal()十進位制數字

如果字串只包含數字則返回 True 否則返回 False..

a.isalnum()由字母或數字組成

如果字串至少有一個字元並且所有字元都是字母或數字則返 回 True,否則返回 False

a.isnumeric()#針對unicode物件 是否只由數字組成

如果字串中只包含數字字元,則返回 True,否則返回 False

a.isalpha()字母

如果字串至少有一個字元並且所有字元都是字母則返回 True, 否則返回 False

a.isupper()大寫

如果字串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,則返回 True,否則返回 False

a.islower()小寫

如果字串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True,否則返回 False

a.istitle()單詞首字母大寫 其他字元不能是大寫

如果字串是標題化的(見 title())則返回 True,否則返回 False

a.isspace()空格

如果字串中只包含空白,則返回 True,否則返回 False.

a.isprintable()製表符

字串只包含

a.isidentifier()換行

字串只包含

3.填充(填充的預設值是空格)
str.center(width[, fillchar])
字串居中 設定寬度 和填充字元
str.ljust(width[, fillchar])
str.rjust(width[, fillchar])
在字串左邊 右邊 填充
str.zfill(width) 用0在左側填充
用0填充在字串S的左邊使其長度為width。如果S前右正負號+/-,則0填充在這兩個符號的後面,且符號也算入長度。
如果width小於或等t於S的長度,則無法填充,直接返回S本身

4.子串搜尋 (搜尋符合左閉右開原則)
str.count(sub[,start[,end]])
str.endswith( suffix[, start[, end]])
str.startswith( prefix[, start[, end]])
(suffix/prefix)是元組tuple時,只要其中任何一個元素滿足條件 就返回True

str.find(sub[,start[,end]]) 如果包含,返回sub索引位置;否則返回'-1'
str.rfind()
str.index() 找不到子串丟擲ValueError錯誤
str.rindex()

5.替換
str.replace(old,new[,count])
給定count只替換前count個old;若找不到子串則直接返回字元str
str.expandtabs(N)
將\t替換為一定數量的空格 預設N=8

str.translate(table)
str.maketrans(x[,y[,z]])
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab) # 製作翻譯表
str = "this is string example....wow!!!"
print(str.translate(trantab))

6.分割
str.partition(sep)
str.rpartition(sep)
搜尋字串S中的子串sep,並從sep處對S進行分割,最後返回一個包含3元素的元組:sep左邊的部分是元組的第一個元素,sep自身是元組的二個元素,sep右邊是元組的第三個元素。
partition(sep)從左邊第一個sep進行分割,rpartition(sep)從右邊第一個sep進行分割。
如果搜尋不到sep,則返回的3元素元組中,有兩個元素為空。partition()是後兩個元素為空,rpartition()是前兩個元素為空。

只搜尋到一個sep時,兩者結果相同

print('abcxyzopq'.partition('xy'))
('abc', 'xy', 'zopq')
print('abcxyzopq'.rpartition('xy'))
('abc', 'xy', 'zopq')

搜尋到多個sep時,分別從左第一個、右第一個sep分割

print('abcxyzxyopq'.partition('xy'))
('abc', 'xy', 'zxyopq')
print('abcxyzxyopq'.rpartition('xy'))
('abcxyz', 'xy', 'opq')

搜尋不到sep

print('abcxyzxyopq'.partition('xyc'))
('abcxyzxyopq', '', '')
print('abcxyzxyopq'.rpartition('xyc'))
('', '', 'abcxyzxyopq')

分割字串 並生成一個列表
str.split()
str = 'asdfasdvcweadfsfad'
print(str.split('a',4)#分隔符 分割次數

str.rsplit()
str.splitlines()#專門用來分割換行符

7.join
s.join(iterable)
join(seq)以指定字串作為分隔符 將seq中的所有元素(的字串表示)合併為一個新的字串

8.修剪
strip([chars]) 預設值為空格
freshfruit = [' banana', ' loganberry ', 'passion fruit ']
print([weapon.strip() for weapon in freshfruit])
lstrip ([chars])
rstrip([chars])
分別是移除左右兩邊、左邊、右邊的字元char。如果不指定chars或者指定為None,則預設移除空白(空格、製表符、換行符)。
唯一需要注意的是,chars可以是多個字元序列。在移除時,只要是這個序列中的字元,都會被移除