python字符串處理

python字符串處理

上一篇文章: Python判斷與循環語句
下一篇文章: Python列表處理

一、修改字符串的大小寫

方法 含義
title() 將每一個單詞首字母大寫
upper() 將每一個字母都大寫
lower() 將每一個字母都小寫
capitalize() 將字符串首字母大寫,其他字符小寫

實例展現:python

name="zhao li Xiang"
print("單詞首字母大寫前:%s"%name)
name.title()
print("單詞首字母大寫後(不用name接收):%s"%name)
name=name.title()
print("單詞首字母大寫後(用name接收):%s"%name)

print("*"*50)

name="zhao li Xiang"
print("全部字母都大寫前:%s"%name)
name.upper()
print("全部字母都大寫後(不用name接收):%s"%name)
name=name.upper()
print("全部字母大寫後(用name接收):%s"%name)

print("*"*50)

name="zhao li Xiang"
print("全部字母都小寫前:%s"%name)
name.lower()
print("全部字母都小寫後(不用name接收):%s"%name)
name=name.lower()
print("全部字母都小寫後(用name接收):%s"%name)

print("*"*50)

name="zhao li Xiang"
print("字符串首字母大寫,其它字符小寫前:%s"%name)
name.capitalize()
print("字符串首字母大寫,其它字符小寫後(不用name接收):%s"%name)
name=name.capitalize()
print("字符串首字母大寫,其它字符小寫後(用name接收):%s"%name)

控制檯打印結果git

單詞首字母大寫前:zhao li Xiang
單詞首字母大寫後(不用name接收):zhao li Xiang
單詞首字母大寫後(用name接收):Zhao Li Xiang
**************************************************
全部字母都大寫前:zhao li Xiang
全部字母都大寫後(不用name接收):zhao li Xiang
全部字母大寫後(用name接收):ZHAO LI XIANG
**************************************************
全部字母都小寫前:zhao li Xiang
全部字母都小寫後(不用name接收):zhao li Xiang
全部字母都小寫後(用name接收):zhao li xiang
**************************************************
字符串首字母大寫前:zhao li Xiang
字符串首字母大寫後(不用name接收):zhao li Xiang
字符串首字母大寫後(用name接收):Zhao li xiang

不難看出:不管是上面三個方法中的哪個,都只是返回改變後的結果,對操做的字符串對象沒有任何影響!segmentfault

將全部字母大寫或者小寫,可用來判斷用戶輸入是使用,能夠作到相應的人性化關懷(大小寫均可以)

二、合併(拼接字符串)

使用+號來合併api

print("Mark"+"帥哥🤗")

打印結果:數組

Mark帥哥🤗

三、使用製表符或換行符來添加空白

t:製表符函數

n:換行符spa

print("Mark\t帥哥")
print("Mark\n帥哥")

控制檯打印結果:code

Mark 帥哥
Mark
帥哥

四、刪除空白

lstrip():刪除字符串開頭空白對象

rstrip():刪除字符串尾部空白blog

strip():刪除字符串先後字空白

注意:上面兩個函數都只是返回刪除空白後的字符串,對原有字符串沒有改變

實例:

name=" Mark "
name.lstrip()
print("*"+name+"*")
name.rstrip()
print("*"+name+"*")
print("*"+name.lstrip().rstrip()+"*")
print("*"+name.strip()+"*")

打印結果:

* Mark *
* Mark *
*Mark*
*Mark*

五、下標與切片

下標:字符串能夠看出是一個字符數組,而在這個數組的位置就是對應字符的下標

切片:是對操做對象截取一部分的操做。字符串、列表、元組都支持切片

切片的語法:[起始下標:結束下標:步長]

若是有字符串「abcdef」,在內存中實際存儲以下:

圖片描述

能夠經過下標獲取指定字符:

name="abcdef"
print(name[0])
print(name[1])
print(name[2])
print(name[3])

打印結果:

a
b
c
d

切片操做:

name="abcdef"
print(name[:3])
print(name[1:3])
print(name[3:])
print(name[1:5:2])
#從第二個字符到最後第二個字符
print(name[1:-1])
#倒序
print(name[::-1])

打印結果:

abc
bc
def
bd
bcde
fedcba

六、find、rfind:查找指定字符串是否存在於目標字符串

語法:目標字符串.find(須要查詢的指定字符串[開始查詢的下標,結束查詢的下標]):從左邊開始查找

目標字符串.find(須要查詢的指定字符串[開始查詢的下標,結束查詢的下標:從右邊開始查找

存在就會返回下標,不存在就返回-1

實例:

name="abcdefg"
print(name.find("cd"))
print(name.rfind("cd"))
print(name.find("gg"))
print(name.rfind("gg"))

控制檯打印結果:

2
2
-1
-1

七、index、rindex:查找指定字符串是否存在於目標字符串

與find的不一樣點是若是沒有查詢到,index方法會報錯

實例:

name="abcdefg"
print(name.index("cd"))
print(name.rindex("cd"))
print(name.index("gg"))
print(name.rindex("gg"))

打印結果:

2
Traceback (most recent call last):
2
File "/Users/zhaolixiang/Desktop/python/test1/venv/字符串index.py", line 4, in <module>
print(name.index("gg"))
ValueError: substring not found

八、count:返回指定字符串在目標字符串出現的次數

語法:目標字符串.count(指定字符串[,開始下標,結束下標])

實例:

name="mark mark mark"
print(name.count("ar"))
print(name.count("ar",0,5))
print(name.count("ar",5))

打印結果:

3
1
2

九、replace:替換字符串

語法:mystr.replace(str1,str2[,count])

將mystr中的str1替換爲str2,若是count指定,則替換次數不超過count次。

這個方法也是隻影響返回值,不對mystr對象進行改變。

實例:

name="mark mark mark"
print(name.replace("ar","br"))
print(name.replace("ar","br",0))
print(name.replace("ar","br",1))

打印結果:

mark mark mark
mbrk mbrk mbrk
mark mark mark
mbrk mark mark

十、split分割字符串

語法:mystr.split(str[,count])

把mystr依靠str進行分割,若是count指定,則最多分割count個字符串

實例:

name="mark mark mark"
print(name.split("ar"))
print(name.split("ar",0))
print(name.split("ar",2))

打印結果:

['m', 'k m', 'k m', 'k']
['mark mark mark']
['m', 'k m', 'k mark']

十一、startswith、endswith判斷是否以指定字符串開發或結束

實例:

name="Mark 帥哥"
print(name.startswith("Mar"))
print(name.startswith("mar"))
print(name.endswith("哥"))
print(name.endswith("帥"))

控制檯打印結果:

True
False
True
False

十二、ljust、rjust、center:返回一個元字符左對齊或右對齊或居中,用空白填充至指定寬度的字符串

實例:

name="mark"
print("*"+name.ljust(2)+"*")
print("*"+name.ljust(6)+"*")
print("*"+name.rjust(6)+"*")
print("*"+name.center(6)+"*")

打印結果:

*mark*
*mark *
* mark*
* mark *

1三、partition、rpartition:將目標字符串安裝指定字符串分割爲三部分

實例:

name="hello world world mark"
print(name.partition("world"))
print(name.rpartition("world"))

打印結果:

('hello ', 'world', ' world mark')
('hello world ', 'world', ' mark')

1四、splitlines按行分割字符串

實例:

name="hello\nworld\nworld\nmark"
print(name.splitlines())

打印結果:

['hello', 'world', 'world', 'mark']

1五、isalpha:判斷字符串是否都是字符

實例:

print("mark".isalpha())
print("mark123".isalpha())
print("mark帥哥".isalpha())
print("mark 帥哥".isalpha())

打印結果:

True
False
True
False

1六、isdigit:判斷字符串是否都是數字

實例:

print("mark".isdigit())
print("123".isdigit())
print("123帥哥".isdigit())

打印結果:

False
True
False

1七、isalnum:判斷字符串是否都是字符或數字

實例:

print("mark".isalnum())
print("mark123".isalnum())
print("123".isalnum())
print("mark 帥哥".isalnum())

打印結果:

True
True
True
False

1八、isspace:判斷字符串是否只包含空格

實例:

print("mark".isspace())
print("mark 123".isspace())
print(" ".isspace())

打印結果:

False
False
True

1九、join:每一個字符後面插入指定字符

實例:

list=["my","name","is","mark"]
print(" ".join(list))
print("_".join(list))

打印 結果:

my name is mark
my_name_is_mark
相關文章
相關標籤/搜索