目錄:
- capitalize
- casefold
- center
- count
- encode
- decode
- endswith
- expandtabs
- find
- format
- format_map
- index
- isalnum
- isalpha
- isdecimal
- isdigit
- isidentifier
- islower
- isnumeric
- isprintable
- isspace
- istitle
- isupper
- join
- ljust
- lower
- lstrip
- maketrans
- partition
- replace
- rfind
- rindex
- rjust
- rpartition
- rsplit
- rstrip
- split
- splitlines
- startswith
- strip
- swapcase
- title
- translate
- upper
- zfill
1.0 capitalize()函數
描述:將字符串的第一個字母變成大寫,其余字母變為小寫。
語法:str.capitalize() —> str 返回字符串
str1 = "i Love python"
str2 = " i Love python" #字母i前有空格
str3 = "I Love python"
print(str1.capitalize())
print(str2.capitalize())
print(str3.capitalize())
程序運行結果:
I love python
i love python
I love python
2.0 lower()函數
描述:將字符串中的所有大寫字母轉換為小寫字母。
語法:str.lower() -> str 返回字符串
str1 = "I Love Python"
str2 = "Groß - α" #德語 大寫α
print(str1.casefold())
print(str1.lower())
print(str2.casefold())
print(str2.lower())
程序運行結果:
i love python
i love python
gross - α
groß - α
注意
lower()函數和casefold()函數的區別:
lower() 方法只對ASCII編碼,即‘A-Z’有效,對於其它語言中把大寫轉換為小寫的情況無效,只能用 casefold() 函數。
3.0 casefold()函數
描述:將字符串中的所有大寫字母轉換為小寫字母。
語法:str.casefold() -> str 返回字符串
str1 = "I Love Python"
str2 = "Groß - α" #德語 大寫α
print(str1.casefold())
print(str1.lower())
print(str2.casefold())
print(str2.lower())
程序運行結果:
i love python
i love python
gross - α
groß - α
4.0 center()函數
描述:返回一個長度為width,兩邊用fillchar(單字符)填充的字符串,即字符串str居中,兩邊用fillchar填充。若字符串的長度大於width,則直接返回字符串str
語法:str.center(width , "fillchar") -> str 返回字符串 注意:引號不可省
str = "i love python"
print(str.center(20,"*"))
print(str.center(1,"*"))
print(str.center(20,"8"))
程序運行結果:
***i love python****
i love python
888i love python8888
5.0 count()函數
描述:統計字符串里某個字符出現的次數。可以選擇字符串索引的起始位置和結束位置。
語法:str.count("char", start,end) 或 str.count("char") -> int 返回整數
str為要統計的字符(可以是單字符,也可以是多字符),star為索引字符串的起始位置,默認參數為0,end為索引字符串的結束位置,默認參數為字符串長度即len(str)
str = "i love python,i am learning python"
print(str.count("i")) #star 和end 為默認參數
print(str.count("i",2)) # star值為2,end值為默認參數
print(str.count("i",2,5)) #star值為2,end值為5
print(str.count("am")) #多字符統計
程序運行結果:
3
2
0
1
6.0 encode()函數
描述:以指定的編碼格式編碼字符串,默認編碼為 'utf-8'。
語法:str.encode(encoding='utf-8', errors='strict') -> bytes (獲得bytes類型對象)
- encoding 參數可選,即要使用的編碼,默認編碼為 'utf-8'。字符串編碼常用類型有:utf-8,gb2312,cp936,gbk等。
- errors 參數可選,設置不同錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個UnicodeEncodeError。 其它可能值有 'ignore', 'replace', 'xmlcharrefreplace'以及通過 codecs.register_error() 注冊其它的值。
str1 = "我愛祖國"
str2 = "I love my country"
print("utf8編碼:",str1.encode(encoding="utf8",errors="strict")) #等價於print("utf8編碼:",str1.encode("utf8"))
print("utf8編碼:",str2.encode(encoding="utf8",errors="strict"))
print("gb2312編碼:",str1.encode(encoding="gb2312",errors="strict"))#以gb2312編碼格式對str1進行編碼,獲得bytes類型對象的str
print("gb2312編碼:",str2.encode(encoding="gb2312",errors="strict"))
print("cp936編碼:",str1.encode(encoding="cp936",errors="strict"))
print("cp936編碼:",str2.encode(encoding="cp936",errors="strict"))
print("gbk編碼:",str1.encode(encoding="gbk",errors="strict"))
print("gbk編碼:",str2.encode(encoding="gbk",errors="strict"))
程序運行結果:
utf8編碼: b'\xe6\x88\x91\xe7\x88\xb1\xe7\xa5\x96\xe5\x9b\xbd'
utf8編碼: b'I love my country'
gb2312編碼: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'
gb2312編碼: b'I love my country'
cp936編碼: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'
cp936編碼: b'I love my country'
gbk編碼: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'
gbk編碼: b'I love my country'
注:在python中encode和decode分別指編碼和解碼
7.0 decode()函數
描述:以 encoding 指定的編碼格式解碼字符串,默認編碼為字符串編碼。
- encoding ——要使用的編碼,如:utf-8,gb2312,cp936,gbk等。
- errors ——設置不同解碼錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個 UnicodeDecodeError。 其它可能得值有 'ignore', 'replace'以及通過 codecs.register_error() 注冊的1其它值。
語法:str.decode(encoding='utf-8', errors='strict')
s = "我愛祖國"
str1 = s.encode(encoding="utf-8",errors="strict")
str2 = s.encode("gb2312") #編碼錯誤的處理方案默認為"strict"
str3 = s.encode("gbk")
print(str1.decode(encoding="utf-8",errors="strict"))#用utf-8的解碼格式,解碼str1.
print(str1.decode(encoding="gbk",errors="ignore"))##如果以gbk的解碼格式對str1進行解碼得,將無法還原原來的字符串內容
print(str1.decode(encoding="gbk",errors="strict"))
print(str1.decode(encoding="gbk",errors="replace"))
print(" ")
print(str2.decode("gb2312"))
print(str3.decode("gbk"))
程序運行結果:
我愛祖國
鎴戠埍紲栧浗
鎴戠埍紲栧浗
鎴戠埍紲栧浗
我愛祖國
我愛祖國
8.0 endswith()函數
描述:判斷字符串是否以指定字符或子字符串結尾。
語法:str.endswith("suffix", start, end) 或
str[start,end].endswith("suffix") 用於判斷字符串中某段字符串是否以指定字符或子字符串結尾。
—> bool 返回值為布爾類型(True,False)
- suffix — 后綴,可以是單個字符,也可以是字符串,還可以是元組("suffix"中的引號要省略,常用於判斷文件類型)。
- start —索引字符串的起始位置。
- end — 索引字符串的結束位置。
- str.endswith(suffix) star默認為0,end默認為字符串的長度減一(len(str)-1)
注意:空字符的情況。返回值通常為True
str = "i love python"
print("1:",str.endswith("n"))
print("2:",str.endswith("python"))
print("3:",str.endswith("n",0,6))# 索引 i love 是否以“n”結尾。
print("4:",str.endswith("")) #空字符
print("5:",str[0:6].endswith("n")) # 只索引 i love
print("6:",str[0:6].endswith("e"))
print("7:",str[0:6].endswith(""))
print("8:",str.endswith(("n","z")))#遍歷元組的元素,存在即返回True,否者返回False
print("9:",str.endswith(("k","m")))
#元組案例
file = "python.txt"
if file.endswith("txt"):
print("該文件是文本文件")
elif file.endswith(("AVI","WMV","RM")):
print("該文件為視頻文件")
else:
print("文件格式未知")
程序運行結果:
1: True
2: True
3: False
4: True
5: False
6: True
7: True
8: True
9: False
該文件是文本文件
9.0 startswith()函數
描述:判斷字符串是否以指定字符或子字符串開頭。
語法:str.endswith("suffix", start, end) 或
str[start,end].endswith("suffix") 用於判斷字符串中某段字符串是否以指定字符或子字符串結尾。
—> bool 返回值為布爾類型(True,False)
- suffix — 后綴,可以是單個字符,也可以是字符串,還可以是元組("suffix"中的引號要省略)。
- start —索引字符串的起始位置。
- end — 索引字符串的結束位置。
- str.endswith(suffix) star默認為0,end默認為字符串的長度減一(len(str)-1)
注意:空字符的情況。返回值通常也為True
str = "hello,i love python"
print("1:",str.startswith("h"))
print("2:",str.startswith("l",2,10))# 索引 llo,i lo 是否以“n”結尾。
print("3:",str.startswith("")) #空字符
print("4:",str[0:6].startswith("h")) # 只索引 hello,
print("5:",str[0:6].startswith("e"))
print("6:",str[0:6].startswith(""))
print("7:",str.startswith(("h","z")))#遍歷元組的元素,存在即返回True,否者返回False
print("8:",str.startswith(("k","m")))
程序運行結果:
1: True
2: True
3: True
4: True
5: False
6: True
7: True
8: False
10.0 expandtabs()函數
描述:返回一個字符串的副本。使原字符串中的制表符(" ")的使用空間變大。使用空格來擴展空間。
語法: str.expandtabs(tabsize=8) —> str 返回字符串
- tabsize 的默認值為8。tabsize值為0到7等效於tabsize=8。tabsize每增加1,原字符串中“ ”的空間會多加一個空格。
str = "i love python"
print(str.expandtabs())#默認值為8
print(str.expandtabs(tabsize=8))
print(str.expandtabs())
print(str.expandtabs(2)) #tabsize值為0到7,與tabsize值為8相同
print(str.expandtabs(tabsize=2))
print(str.expandtabs(tabsize=9))
print(str.expandtabs(tabsize=10))
程序運行結果:
i love python
i love python
i love python
i love python
i love python
i love python
i love python
11.0 find()函數
描述:查找字符串中第一次出現的子字符串的位置,可以規定字符串的索引查找范圍。若無則返回 -1
語法:str.find(sub,start,end) -> int 返回整數。
- sum —要索引的子字符串
- start —索引的起始位置。默認值為0
- end —索引的結束位置。默認值為字符串長度減一(len(str)-1)
[start,end) 不包括end
str = "i love python"
print(str.find("o")) #索引子字符串"o"
print(str.find("0",4))#索引起始位置為4
print(str.find("o",4,12))#索引起始位置為4,結束位置為12 即:ve pytho
print(str.find("k")) #索引子字符串"k",不存在,返回-1
程序運行結果:
3
-1
11
-1
12.0 format_map()函數:
描述:返回字符串的格式化版本。
語法:str.format_map(mapping) -> str 返回字符串
student = {"name":["張三","李四"],"idcard":[1,2]}
print("我的名字是{name[0]},我的學號是{idcard[0]}".format_map(student))
print("我的名字是{name[0]},我的學號是{idcard[1]}".format_map(student))
print(["我的名字是{},我的學號是{}".format(*x) for x in zip(student["name"],student["idcard"])]) #以列表的形式輸出
print("我的名字是{},我的學號是{}".format(*x) for x in zip(student["name"],student["idcard"]))
print(["我的名字是{},我的學號是{}".format(*x) for x in zip(*map(student.get,["name","idcard"]))]) #以列表的形式輸出
print("我的名字是{},我的學號是{}".format(*x) for x in zip(*map(student.get,["name","idcard"])))
for i in range(len(student)):
print("我的名字是{{name[0]}},我的學號是{{idcard[0]}}".format(i).format_map(student))
# {{ }} 等效於{ }
程序運行結果:
我的名字是張三,我的學號是1
我的名字是張三,我的學號是2
['我的名字是張三,我的學號是1', '我的名字是李四,我的學號是2']
<generator object <genexpr> at 0x0000018F5E1CFF68>
['我的名字是張三,我的學號是1', '我的名字是李四,我的學號是2']
<generator object <genexpr> at 0x0000018F5E1CF200>
我的名字是張三,我的學號是1
我的名字是張三,我的學號是1
13.0 index()函數
描述:查找字符串中第一次出現的子字符串的位置,可以規定字符串的索引查找范圍。若無則會報錯
語法:str.index(sub, start, end) -> int 返回整數。
str = "i love python"
print(str.index("o")) #默認索引整個字符串
print(str.index("o",4)) #索引 ve python
print(str.index("o",4,12)) #索引 ve pytho
print(str.index("love")) #索引多個字符
print(str.index("k")) #索引字符串不存在,報錯
程序運行結果:
3
11
11
2
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-90-a880e13b1574> in <module>()
4 print(str.index("o",4,12)) #索引 ve pytho
5 print(str.index("love")) #索引多個字符
----> 6 print(str.index("k"))
ValueError: substring not found
注:index()函數和find()函數類似,但index()函數沒有找到子字符串會報錯。
14.0 isalnum()函數
描述:檢測字符串是否由字母和數字組成。
語法:str.isalnum() -> bool 返回值為布爾類型(True,False)
- str中至少有一個字符且所有字符都是字母或數字則返回 True,否則返回 False
str1 = "i love python 666" #有空格,不全是字母或數字
str2 = "python" #全為字母
str3 = "123" #全為數字
str4 = "python666" #字母和數字的組合
print(str1.isalnum())
print(str2.isalnum())
print(str3.isalnum())
print(str4.isalnum())
程序運行結果:
False
True
True
True
15.0 isalpha()函數
描述:檢測字符串是否只由字母組成.
語法:str.isalpha() -> bool 返回值為布爾類型(True,False)
- 字符串中至少有一個字符且所有字符都是字母則返回 True,否則返回 False
str1 = "python" #全為字母
str2 = " python" #存在空格
str3 = "123" #全為數字
str4 = "python666" #字母和數字的組合
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())
print(str4.isalpha()
程序運行結果:
True
False
False
False
16.0 isdecimal()函數
描述:檢查字符串是否只包含十進制字符。該方法只存在於unicode對象中。
注意:定義一個十進制字符串,只需要在字符串前添加前綴 'u' 即可。
語法: str.isdecimal() -> bool 返回值為布爾類型(True,False)
- 字符串中若只包含十進制字符返回True,否則返回False。
str1 = u"123456"
str2 = u"python666"
str3 = "123456"
str4 = "python666"
print(str1.isdecimal())
print(str2.isdecimal())
print(str3.isdecimal())
print(str4.isdecimal())
程序運行結果:
True
False
True
False
17.0 isdigit()函數
描述:檢測字符串是否只由數字組成.
語法: str.isdigit() -> bool 返回值為布爾類型(True,False)
- 字符串中至少有一個字符且所有字符都是數字則返回 True,否則返回 False
- 注:能判斷“①”,不能判斷中文數字。但 isnumeric() 函數可以
str1 = "python" #全為字母
str2 = " python" #存在空格
str3 = "123" #全為數字
str4 = "python666" #字母和數字的組合
str5 = "一二三四五六七" #中文數字輸出False
str6 = "①"
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())
print(str4.isdigit())
print(str5.isdigit())
print(str6.isdigit())
程序運行結果:
False
False
True
False
False
True
18.0 isidentifier()函數
描述:判斷str是否是有效的標識符。str為符合命名規則的變量,保留標識符則返回True,否者返回False.
語法:str.isidentifier() -> bool 返回值為布爾類型(True,False)
str1 = "123" #變量名為123
str2 = "def" #變量名為保留字
str3 = "_123" #變量名有下划線開頭
str4 = "student"#變量名由字母開端
print(str1.isidentifier())
print(str2.isidentifier())
print(str3.isidentifier())
print(str4.isidentifier())
程序運行結果:
False
True
True
True
19.0 islower()函數
描述:檢測字符串中的字母是否全由小寫字母組成。(字符串中可包含非字母字符)
語法:str.islower() -> bool 返回值為布爾類型(True,False)
- 字符串中包含至少一個區分大小寫的字符,且所有這些區分大小寫的字符都是小寫,則返回 True,否則返回 False
str1 = "i love python" #字符串中的字母全為小寫
str2 = "我愛python!" #字符串中的字母全為小寫,也存在非字母的字符
str3 = "I love python" #字符串中有大寫字符
print(str1.islower())
print(str2.islower())
print(str3.islower())
程序運行結果:
True
True
False
20.0 isupper()函數
描述:檢測字符串中的字母是否全由大寫字母組成。(字符串中可包含非字母字符)
語法:str.isupper() -> bool 返回值為布爾類型(True,False)
- 字符串中包含至少一個區分大小寫的字符,且所有這些區分大小寫的字符都是大寫,則返回 True,否則返回 False
str1 = "I LOVE PYTHON" #全為大寫字母
str2 = "i LOVE PYTHON" #存在小寫字母
str3 = "我愛PYTHON" #存在非字母的字符
print(str1.isupper())
print(str2.isupper())
print(str3.isupper())
程序運行結果:
True
False
True