python字串常用方法
阿新 • • 發佈:2018-12-20
常用查詢方法
a = “我是吾志高,我來自火星,是個直男,同時是個男權主義者,關於當代女性所謂的抱怨 ,我只想說世界是相對公平的,就像世界上百分之九十五的危險工作都是男性在承擔,世界上 因為工作而死亡的人中,男性佔百分之九十,別逼逼說什麼女權需要加強,現在的女權都是什 麼樣子了,兩性平等是對的,但是當代的女權真噁心,不勞而獲,有車有房,男人已經意識到 自身的不足了,女人卻還沒意識到自己的矯情,所謂的晉升天花板,呵呵,想過男人的付出沒 有,那些困苦勞累,家庭壓力都是男人承擔起來的,當一個家庭的父親去世之後,所謂的頂樑 柱部只是說說而已,請關注男權!”
>>> len(a) #字串長度 264 >>> a.startswith("我是吾志高") #以指定字串開頭 True >>> a.endswith("!") #以指定字串結尾 True >>> a.find("平") #第一次出現指定字串的位置 50 >>> a.rfind("平") #最後一次出現指定字串的位置 130 >>> a.count("平") #指定字元出現了幾次 2 >>> a.isalnum() #所有字元全是字母或者數字 False
去除首尾資訊
我們可以通過strip()去除字串首尾指定資訊,通過lstrip()去除字串左邊指定資訊
通過rstrip()去除字串右邊指定資訊
>>> a = " wuzhigso " >>> a.strip() #預設是去除兩邊空格 'wuzhigso' >>> b = "# wuzhigao #" >>> b.strip("#") #去除兩邊指定資訊 ' wuzhigao ' >>> b '# wuzhigao #' >>> b.rstrip("#") #去除右邊指定資訊 '# wuzhigao ' >>> b.strip("# ") 'wuzhigao'
大小寫轉化
>>> a = "wuzhigao is a good BOY" >>> a.capitalize() 產生新的字串,首字母大寫 'Wuzhigao is a good boy' >>> a.title() 產生新的字串,單個字母首字母大寫 'Wuzhigao Is A Good Boy' >>> a.upper() 產生新的字串,所有字母全部轉化為大寫 'WUZHIGAO IS A GOOD BOY' >>> a.lower() 產生新的字串,所有字母轉化為小寫 'wuzhigao is a good boy' >>> a.swapcase() 產生新的字串,所有字母的大小寫轉化 'WUZHIGAO IS A GOOD boy'
格式排版
center() ljust() , rjust() 這三個函式用於對字串實現排版
>>> a ="sxt"
>>> a.center(10,"*") #居中對齊,字元長度是10,填充*
'***sxt****'
>>> a.center(10) #居中對齊,字元長度是10,預設空格填充
' sxt '
>>> a.ljust(10,"*") #左對齊,字元長度10,填充*
'sxt*******'
其他方法
>>> "wuzhigao110".isalnum() #判斷是否為字元或數字
True
>>> "吾志高110".isalnum() #中文也屬於字元
True
>>> "吾志高110".isalpha() #判斷是否只由字母組成(含漢字)
False
>>> "12345".isdigit() #判斷字串是否只由數字組成
True
>>> "12.34".isdigit()
False
>>> "A".isupper() #判斷是否為大寫字母
True
>>> "a".islower() #判斷是否為小寫字母
True
字串得格式化 format函式基本用法
>>> a = "我是{0},我還有{1}元"
>>> a.format("吾志高","1700")
'我是吾志高,我還有1700元'
>>> a = "我是{name},我還有{money}元"
>>> a.format(name="吾志高",money = "1700")
'我是吾志高,我還有1700元'
填充與對齊
填充常跟對齊一起使用 ^ ,<, >分別是居中,左對齊,右對齊,後面頻寬度
:號後面帶填充得字元,只能是一個字元,不指定得話預設是用空格填充
>>> a = "{:$^10}" #特定格式 ,:前面是索引,後面是格式
>>> a.format("wuzhigao")
'$wuzhigao$'
>>> a = "{name:$^20}"
>>> a.format(name = "wuzhigao")
'$$$$$$wuzhigao$$$$$$'
數字格式化
>>> a = "{:.3f}" 小數點後三位
>>> a.format(3.14159)
'3.142'
>>> a = "{:0>2d}" 兩位數,右邊補0
>>> a.format(5)
'05'
>>> a = "{:0>5d}" 整數,否則報錯
>>> a.format(5.2)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
a.format(5.2)
>>> a = "{:.2e}" 指數記法
>>> a.format(50000000000)
'5.00e+10'
ValueError: Unknown format code 'd' for object of type 'float'
>>> a = "{:.2%}" #百分比格式
>>> a.format(5)
'500.00%'
>>> a = "{:^10d}" 居中對齊
>>> a.format(5)
' 5 '
可變字串
在python中,字串屬於不可變物件,不支援原地修改,如果需要修改其中得值,只能
船艦新的字串物件,但是,經常我們確實 需要修改字串,可以使用io.StringIO物件 、 或者array模組
>>> import io
>>> s = "hellow word"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x0000019FFFBC71F8>
>>> sio.getvalue()
'hellow word'
>>> sio.seek(7)
7
>>> sio.write("g")
1
>>> sio.getvalue()
'hellow gord'