Python基礎之String常用方法
- str():將其他類型的變量轉換為str類型,例如:
1 name = 'Jack' 2 age = 22 3 course = ['web','Java','mysql','linux'] 4 greads = [80,89,96,72] 5 print('使用str()函數前:') 6 print(type(name)) 7 print(type(age)) 8 print(type(course)) 9 print(type(greads)) 10 print('使用str()函數后:') 11 print(type(str(name))) 12 print(type(str(age))) 13 print(type(str(course))) 14 print(type(str(greads)))
運行結果為:
使用str()函數前: <class 'str'> <class 'int'> <class 'list'> <class 'list'> 使用str()函數后: <class 'str'> <class 'str'> <class 'str'> <class 'str'>
- capitalize:字符串的第一個字母大寫,例如:
1 s='asdfg hjkl' 2 print(s.capitalize())
運行結果為:
Asdfg hjkl
- casefold:大小寫相互轉換,例如:
1 s1 = 'asdfghjkl' 2 s2 = 'ZXCVBNM' 3 print(s1.swapcase()) 4 print(s2.swapcase())
運行結果為:
ASDFGHJKL zxcvbnm
- center:居中,自定義填充字符,例如:
1 s = 'COME ON' 2 print(s.center(20))#長度為20,以空格填充 3 print(s.center(20,'*'))#長度為20,以‘*’填充
運行結果為:
COME ON ******COME ON*******
- count:找子字符串個數,例如:
1 s = 'aghyghaya' 2 print(s.count('a'))#查找所有字符 3 print(s.count('a',3))#從第3個開始查找 4 print(s.count('a',3,9))#從第3個到第9-1個 5 print(s.count('gh',1,9))#查找‘gh’
運行及如果為:
3 2 2 2
- encode/decode:編碼/解碼:
1 s1 = '你好,世界!' 2 s2 = s1.encode('UTF-8','strict') 3 print(s2) 4 print(s2.decode())
運行結果為:
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81' 你好,世界!
- endswith:
1 s = 'asdfghjklpoiuytrewq' 2 print(s.endswith('ewq')) 3 print(s.endswith('jkl',0,9)) 4 print(s.endswith('sdf'))
運行結果為:
True True False
- expandtabs:將\t替換為制定空格數,默認為8個,例如:
1 s = 'asd\tfgh\tjkl' 2 print(s.expandtabs()) 3 print(s.expandtabs(2))
運行結果:
asd fgh jkl asd fgh jkl
- find/rfind:尋找子字符串,返回索引,找不到返回-1,例如:
1 s = 'asdfghasdfcvgfdsa' 2 print(s.find('as')) 3 print(s.find('as',2)) 4 print(s.find('as',2,5)) 5 print(s.find('po')) 6 7 print('r'.center(10,"*")) 8 print(s.rfind('as')) 9 print(s.rfind('as',2)) 10 print(s.rfind('as',2,5)) 11 print(s.rfind('po'))
運行結果為:
0
6
-1
-1
****r*****
6
6
-1
-1 - format
1 s = '{0},{1} {2}' 2 print(s.format('Hello','my','friends.')) 3 s = '{2},{1} {2}' 4 print(s.format('Hello','my','friends.'))
運行結果為:
Hello,my friends. friends.,my friends.
- index:尋找子字符串,返回索引,找不到報錯,例如:
1 s = 'asdfghasdfcvgfdsa' 2 print(s.index('as')) 3 print(s.index('as',2)) 4 print(s.index('as',2,5)) #報錯 5 print(s.index('po')) #報錯
運行結果為:
0 Traceback (most recent call last): 6 File "E:/.../str-index.py", line 4, in <module> print(s.index('as',2,5)) #報錯 ValueError: substring not found
- join:Python join() 方法用於將序列中的元素以指定的字符連接生成一個新的字符串。
1 s = 'Hello, world!' 2 print('-'.join(s,)) 3 print('*'.join(s,))
運行結果為:
H-e-l-l-o-,- -w-o-r-l-d-! H*e*l*l*o*,* *w*o*r*l*d*!
- ljust/rjust:Python rjust() 返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串。如果指定的長度小於字符串的長度則返回原字符串。
1 s = 'asdfghjkl' 2 print(s.ljust(20,'*')) 3 print(s.rjust(20,'*'))
運行結果為:
asdfghjkl*********** ***********asdfghjkl
- strip/lstrip/lstrip:用於截掉字符串左邊或右邊的空格或指定字符:
1 s1 = ' asdfghjkl ' 2 s2 = '****asdfghjkl****' 3 print(s1.strip()) 4 print(s2.strip('*')) 5 print(s2.rstrip('*')) 6 print(s2.lstrip('*'))
運行結果為:
asdfghjkl asdfghjkl ****asdfghjkl asdfghjkl****
- lower轉換小寫:
1 s = 'ASDFghJKL' 2 print(s.lower())
運行結果為:
asdfghjkl
- maketrans/translate:用於創建字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。
1 s1 = "asdfghjkl" 2 s2 = "123456789" 3 s = str.maketrans(s1,s2) 4 str = 'qawsedrftgyhujikolp' 5 print(str.translate(s))
運行結果為:
q1w2e3r4t5y6u7i8o9p
- partition:方法用來根據指定的分隔符將字符串進行分割。
1 s = 'asdfghjkl' 2 print(s.partition('fgh'))
運行結果:
('asd', 'fgh', 'jkl')
- replace:替換字符串:
1 s = 'asdfghjkl' 2 print(s.replace('df','@#$%^&*'))
運行結果為:
as@#$%^&*ghjkl
- split/replit:用於移除字符串頭尾指定的字符(默認為空格)。
1 s = 'asdfghjkl' 2 print(s.split('gh')) 3 print(s.rsplit('gh'))
運行結果為:
['asdf', 'jkl'] ['asdf', 'jkl']
- splitlines:分割行:
1 s = 'asdghjjki\nuytfghj\njjhfkdsj\nhfajhfjdskhfjdskhf' 2 print(s.splitlines())
運行結果為:
['asdghjjki', 'uytfghj', 'jjhfkdsj', 'hfajhfjdskhfjdskhf']
- startswith:判斷字符串是否以某個字符串開始:
1 str = 'asdfghjkl' 2 print(str.startswith('asd')) 3 print(str.startswith('dfg',2)) 4 print(str.startswith('dfg',2,7)) 5 print(str.startswith('fds'))
運行結果為:
True True True False
- strip:去除首部 and/or 尾部的指定的字符,默認空格:
1 s1 = ' asdfghjkl ' 2 s2 = '****asdfghjkl****' 3 print(s1.strip()) 4 print(s2.strip('*')) 5 print(s2.rstrip('*')) 6 print(s2.lstrip('*'))
運行結果為:
asdfghjkl asdfghjkl ****asdfghjkl asdfghjkl****
- swapcase:大小寫互換:
1 s = 'asdfgHJKL' 2 print(s.swapcase())
運行結果為:
ASDFGhjkl
- title:個單詞首字母大寫:
1 s = 'my love will go on' 2 print(s.title())
運行結果為:
My Love Will Go On
- upper:轉大寫字母:
1 s = 'qwe rfg hbn jk' 2 print(s.upper())
運行結果為:
QWE RFG HBN JK
- zfill:用0填充長度:
1 s = 'asdf' 2 print(s.zfill(8))
運行結果為:
0000asdf
- isalnum:如果 string 至少有一個字符並且所有字符都是字母或數字則返回 True,否則返回 False。
- isalpha:如果 string 至少有一個字符並且所有字符都是字母則返回 True,否則返回 False。
- isdecimal:isdecimal()方法檢查字符串是否只包含十進制字符。這種方法只存在於unicode對象。
- isdigit:如果 string 只包含數字則返回 True 否則返回 False。
- isidentifier:如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False。
- isupper:如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False。
- islower:如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False。
- isnumeric:如果 string 中只包含數字字符,則返回 True,否則返回 False。
- isprintable:判斷字符串的所有字符都是可打印字符或字符串為空。Unicode 字符集中 “Other” “Separator” 類別的字符為不可打印的字符(但不包括 ASCII 的空格(0x20))。
- isspace:如果 string 中只包含空格,則返回 True,否則返回 False。
- istitle:如果字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫則返回 True,否則返回 False。