這篇文章主要介紹了Python基礎之字符串操作常用函數集合,需要的朋友可以參考下
文章目錄
- 1、字符串的定義
- 2、切片
- 3、首字母大寫(capitalize())
- 4、統計(count(sub,start=None,end=None))
- 5、center(width,fillchar)
- 6、ljust(width,fillchar)
- 7.rjust(width,fillchar)
- 8、編碼(encode)
- 9、endwith(suffix,start=None,end=None)
- 10、find(sub,start=None,end=None)
- 11、rfind(sub,start=None,end=None)
- 12、format()
- 14、isalnum()
- 15、isalpha()
- 16、isdigit()
- 17、isspace()
- 18、istitle()
- 19、isupper()
- 21、lower()
1、字符串的定義
#定義空字符串<br>>>> name=''<br>#定義非空字符串
>>> name="luoahong"<br>#通過下標訪問
>>> name[1]
'u'<br>#不能修改字符串的值,否則會報錯
>>> name[2] = "3"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
特別提醒:字符串如果修改的話,字符串所在的內存地址也跟着變化,所以不可被修改,但是對於列表來說,可以修改是因爲列表的內存是不變的,可以直接在上面修改
2、切片
特別提醒:字符串其實和列表,元組一樣,也是可以切片的
>>> name="ahong luo"
>>> name[1:4] #取1到4之間的字符,包括1,不包括4
'hon'
>>> name[1:-1] #取1到-1之間的字符,包括1,不包括-1
'hong lu'
>>> name[0:3]
'aho'
>>> name[:3] #從頭開始取,0可以省略,效果等同於name[0:3]
'aho'
>>> name[3:] #想取到最後一個值,必須不能寫-1,只能這麼寫
'ng luo'
>>> name[0::2] #後面的2表示:每隔一個字符就取一個
'aoglo'
>>> name[::2] #從頭開始0可以省略,效果跟上一句一樣
'aoglo'
3、首字母大寫(capitalize())
>>> name="ahong luo"
>>> name.capitalize()
'Ahong luo'
>>>
4、統計(count(sub,start=None,end=None))
sub:統計的字符,start:開始位,end:結束位,start和end默認爲空時,則表示全部字符中去統計
>>> name="ahong luo"
#有開始和結束符
<br>
>>> name.count("o",1,5)
1<br>#從整個字符串中統計字符
>>> name.count("o")<br>2
>>>
5、center(width,fillchar)
如果width(字符寬度)小於等於(<=)字符串的長度,則返回原字符串,如果大於(>)字符串的,則用fillchar(填滿字符)填滿,處理結果等於width,字符串位於fillchar的中間
>>> name="ahong luo"
>>> len(name)
9<br>#10小於等於字符串寬度
>>> name.center(12,'-')
'-ahong luo--'<br>#50大於字符串長度,並且字符串位於填充字符的中間
>>> name.center(50,'-')
'--------------------ahong luo---------------------'
>>> len(name.center(50,'-'))
50
6、ljust(width,fillchar)
如果字符串的長度大於width(字符寬度),則返回原字符串,如果小於width,則用fillchar(填滿字符)填滿,處理結果等於width,fillchar位於字符串的最右邊
>>> name="ahong luo"
>>> len(name)
9<br>#小於等於字符串的長度
>>> name.ljust(8,'-')
'ahong luo'<br>#大於字符串的長度
>>> name.ljust(50,'-')
'ahong luo-----------------------------------------'
特別提醒:ljust中的l表示left的意思,表示從右向左
7.rjust(width,fillchar)
如果字符串的長度大於width(字符寬度),則返回原字符串,如果小於width,則用fillchar(填滿字符)填滿,處理結果等於width,fillchar位於字符串的最左邊
>>> name="ahong luo"<br>>>> len(name)
9
>>> name.rjust(8,'-')
'ahong luo'
>>> name.rjust(50,'-')
'-----------------------------------------ahong luo'
特別提醒:ljust中的l表示left的意思,表示從左向右
8、編碼(encode)
字符串的編碼和解碼,在這邊不用說了,我專門寫了一篇博客,詳細地址:猛擊這裏
9、endwith(suffix,start=None,end=None)
判斷是否已suffix結尾,是返回True,否返回Fales
suffix:表示字符,start:開始位,end:結束位,start和end默認爲空是,表示從整個字符串的結尾去判斷>>> name=“ahong luo”
<em id="__mceDel">>>> name.endswith('0',1,4) False<br> >>> name.endswith('o') True >>> name.endswith('o',1,4) False</em>
10、find(sub,start=None,end=None)
全文查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1
sub:字符或者字符串,start:開始位,end:結束位,start和end默認爲空時,則在整個字符串中查找
>>> name="ahong luo"<br><br>#沒找到,則返回-1
>>> name.find("lu",1,4)
-1
>>> name.find("a",2)
-1
>>> name.find("lu")
6
>>> name.find("lu",1,6)
-1
>>> name.find("lu",1,10)
6
>>>
推薦我們的Python學習扣qun:913066266 ,看看前輩們是如何學習的!從基礎的python腳本到web開發、爬蟲、django、數據挖掘等【PDF,實戰源碼】,零基礎到項目實戰的資料都有整理。送給每一位python的小夥伴!每天都有大牛定時講解Python技術,分享一些學習的方法和需要注意的小細節,點擊加入我們的 python學習者聚集地
11、rfind(sub,start=None,end=None)
從左向右查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1
>>> name="ahong luo"<br>#找到
>>> name.rfind("a")
0<br>#未找到
>>> name.rfind("a",2)
-1
12、format()
①關鍵字拼接也是官方推薦
1
2
3
4
5
6
7
8
9
name = "alex"
age = 18
info = '''----info-----
name:{_name}
age:{_age}
'''.format(_name=name,_age=age)
print(info)
②佔位符拼接
1
2
3
4
5
6
8
7
9
name = "alex"
age = 18
info = '''----info-----
name:{0}
age:{1}
'''.format(name,age)
print(info)
## 13、format_map()
數據格式,以字典形式傳入
>>> name="name:{name},age:{age}"
>>> name.format_map({"name":"luoahong",'age':23})<br>#輸出結果
'name:luoahong,age:23'
14、isalnum()
是否是一個阿拉伯數字和字母,它包含因爲英文字符+(1-9)數字,中間不能有特殊字符
>>> age='23'
>>> age.isalnum()
True<br>#有特殊字符的
>>> age='ab23'
>>> age='ab'
>>> age.isalnum()
True
>>> age='ab'
>>> age.isalpha()
True
>>>
15、isalpha()
是否是一個純的英文字符,包含大寫
>>> age = 'ab'
>>> age.isalpha()
True
#夾着數字
>>> age = 'ab23'
>>> age.isalpha()
False
#大寫
>>> age = 'Ab'
>>> age.isalpha()
True
16、isdigit()
判斷是否是一個整數
17、isspace()
判斷是否是一個空格
#不是空格
>>> age = ' age'
>>> age.isspace()
False
#是空格
>>> age = ' '
>>> age.isspace()
True
18、istitle()
是否是一個標題(字符串中的每個單子首字母大寫)
#每個單詞的首字母是小寫<br>>>> name="luoahong"
>>> name.istitle()
False
>>> name="luo a hong"
>>> name.istitle()
False<br>#每個單詞的首字母大寫
>>> name="Luo A Hong"
>>> name.istitle()
True
>>> name="Luoahong"
>>> name.istitle()
True
19、isupper()
是否是大寫,注意字符串必須全部是大寫纔會返回True,否則返回False
#全部大寫<br>>>> name="LUO"
>>> name.isupper()
True<br>#小寫
>>> name="Luo"
>>> name.isupper()
False
>>>
## ```20、join()
序列用某個字符拼接成一個字符串,注意的是,序列的元素必須是str類
a = [‘1’,‘2’,‘3’]
‘+’.join(a)
‘1+2+3’
21、lower()
字符串中的大寫字母轉換爲小寫字母
name=“LuoAHong”
name.lower()
‘luoahong’
## 22、upper()
字符串中的小寫字母轉換爲大寫字母
name=“LuoAHong”
name.upper()
‘LUOAHONG’
## 23、strip()
去掉左右兩邊的空格(space)和回車(\n)
name= " \n luoahong \n"
name.strip()
‘luoahong’
## 24、lstrip()
刪掉左邊到右的空格(space)和回車(\n)
name= " \n luoahong \n"
name.lstrip()
'luoahong \n
## 25、rstrip()
刪掉右邊到左邊的空格(space)和回車(\n)
name= " \n luoahong \n"
name.rstrip()
’ \n luoahong’
至此,方法前有l(left)和r(right)的函數,都是對之前函數的一個擴展,帶l的表示至始至終從右到左操作,記住左邊纔是最終目的地,而帶r的至始至終都是從左到右,因爲右邊纔是它的終極目標
## 26、split()
分割函數,默認是以空格分割(space)生成一個列表,如果其他字符分割,輸入其他字符參數
name=“ahong luo”
#默認爲空,按空格分割
name.split()
[‘ahong’, ‘luo’]name=“ahong+luo”
#以"+“字符分割
>>> name.split(”+")
[‘ahong’, ‘luo’]
#以’\n’分割name=“ahong\nluo”
name.split("\n")
[‘ahong’, ‘luo’]
## 27、splitlines()
以換行符分割,這個一般在windows上開發,移到Linux上執行,或者在Linux上開發,移到Windows上執行,因爲換行在windows上是"\r\n",linux上是'\n'
name=“ahong\nluo”
name.splitlines()
[‘ahong’, ‘luo’]
## 28、swapcase()
把大寫換成小寫,把小寫換成大寫
name=“Luo”
name.swapcase()
‘lUO’
## 29、startswith(prefix, start=None,end=None)
判斷是否以prefix開始,是返回True,否返回Fales
prefix:表示字符或者字符或者字符串,start:開始位,end:結束位,start和end默認爲空是,表示從整個字符串的結尾去判斷
name=“ahong luo”
name.startswith(“luo”) #開頭找到"luo"字符串
Falsename.startswith(“h”,3,5) #在索引3到5之間沒有找到以字符’h’開頭
False
## 30、replace(old,new[, max])
old:將被替換的子字符串; new:新字符串,用於替換old子字符串;max:可選字符串, 替換不超過 max 次
name=“wo shi luo a hong”
name.replace(“shi”,“bushi”)
‘wo bushi luo a hong’
#原字符串沒有改變name.replace(“shi”,“bushi”,0)
‘wo shi luo a hong’name.replace(“shi”,“bushi”,1)
'wo bushi luo a hong
## 31、zfill(width)
字符的長度是否大於等於(>=)with,如果比width小,則在字符串錢用0填充,如果>=width,則返回原字符串
name=“luoahong”
len(name)
8
#width大於字符串長度name.zfill(11)
‘000luoahong’
#width小於等於字符串長度name.zfill(8)
‘luoahong’