1. 程式人生 > >python字串常用方法

python字串常用方法

常用查詢方法

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'