Python之string

一、string模塊支持哪些字符形式?分別是什麼。

    string支持的字符形式有:git

('_re', '====>', <module 're' from 'C:\Python25\lib\re.pyc'>)
('ascii_letters', '====>', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
('ascii_lowercase', '====>', 'abcdefghijklmnopqrstuvwxyz')
('ascii_uppercase', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
('digits', '====>', '0123456789')
('hexdigits', '====>', '0123456789abcdefABCDEF')  #不太理解
('letters', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')#
('lowercase', '====>', 'abcdefghijklmnopqrstuvwxyz')
('octdigits', '====>', '01234567') #不太理解
('printable', '====>', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c')#所有內容
('punctuation', '====>', '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~')  #標點符號
('uppercase', '====>', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
('whitespace', '====>', '\t\n\x0b\x0c\r ') #全部空字符web

 

二、有哪些字符操做符?

簡單作個分類:shell

關於大小寫的函數:①操做首字母capitalize,capwords。②所有字母:upper,lower,swapcase

字符查找:①查找次數:count,②查找位置 find,index

字符串內容修改:①拆分 split ,②鏈接join,本人習慣用「+」,③對齊 rjust,ljust,center,④替換replace,替換空白字符 trim,ltrim,rtrim。

補充一些:拆分 str.partition(seq),根據seq拆分字符串,左起遇到第一個seq後,將str拆分,返回三個元組,如 hello word,seq=‘l’,返回結果: ('he', 'l', 'lo word')

string.capitalize(s)返回字符串s的一個副本,這個副本的第一個字符大寫。api

>>> s="hello world"
>>> string.capitalize(s)
'Hello world'函數

string.capwords(s)每一個單詞的首字母大寫。spa

>>> string.capwords(s)
'Hello World'orm

 

>>> string.center(s,20)
'    hello world     '
>>> string.center(s,2)
'hello world'ip

>>> string.center(s,20,'*')
'****hello world*****'ci

string.center(s,width[,fillchar])函數,用指定的寬度來返回一個居中版的s,若是須要的話,就用fillchar進行填充,默認是空格。可是不會對s進行截取。即若是s的長度比width大,也不會對s進行截取。字符串

>>> string.count(s,"h")
1

string.count(s,sub[,start[,end]])返回在s[start:end]範圍內子串sub在字符串s當中出現的次數

>>> string.find(s,"a")
-1

string.find(s,sub[,start[,end]])返回在s[start:end]範圍內子串sub在字符串s當中出現的最小下標,沒有找到返回-1

string.index(s,sub[,start[,end]])與string.find方法相似,只不過當沒有找到子串sub的時候,會拋出ValueError異常

>>> string.index(s,"a")
Traceback (most recent call last):
  File "<pyshell#233>", line 1, in <module>
    string.index(s,"a")
  File "C:\Python25\lib\string.py", line 326, in index
    return s.index(*args)
ValueError: substring not found

>>> string.ljust(s,20)
'hello world         '
string.ljust(s, width[, fillchar])字符串的左對齊,

那麼string.rjust()就是右對齊。

>>> string.upper(s)
'HELLO WORLD'
>>> string.lower(s)

'hello world'

string.upper()和string.lower()比較簡單。就是所有轉換爲大寫或者小寫

>>> string.swapcase(s)
'HELLO WORLD'

string.swapcase()實現大小寫的轉換。將大寫轉換爲小寫,將小寫轉換爲大寫。

>>> s="  hello world "
>>> string.strip(s)
'hello world'
string.strip(s)剔除字符串s左右空格

>>> string.lstrip(s)
'hello world '
>>> string.rstrip(s)
'  hello world'
string.lstrip(s)和string.rstrip(s)分別剔除字符串左、右邊的空格

>>> string.zfill(s,20)
'000000  hello world '
>>> string.zfill(s,2)
'  hello world '
string.zfill(s,width)與center相似,不過這裏的填充使用"0"來替代。

s="abc"

>>> x=string.maketrans(string.ascii_letters,string.ascii_letters[2:]+string.ascii_letters[:2])
>>> string.translate(s,x)
'cde'

string.maketrans()和string.translate()通常配合使用,用maketrans定義字符串的轉換規則,而後用translate來實現。

咱們能夠用它來實現swapcase()方法

>>> x=string.maketrans(string.ascii_letters,string.letters)
>>> string.translate("AbCdEf",x)

'aBcDeF'
>>> string.translate("Ab CdE f",x)
'aB cDe F'

>>> string.split("hello world")
['hello', 'world']
string.split(s, sep=None, maxsplit=-1)用sep拆分s,返回拆分後的列表,若是sep沒有提供或者爲None,那麼默認的就是空格

string.join的功能恰好與其相反。

>>> l=string.split("hello world")>>> string.join(l)'hello world'join(list [,sep])是用sep把list組合成一個字符串返回。

相關文章
相關標籤/搜索