3.Python字串常用方法
認識Python中物件
- Python中一切都是物件
- 每個物件都有各自的屬性與方法
- 物件的特點就是它的屬性,它的功能就是它的方法
字串的capitalize函式
-
capitalize的功能
- 將字串的首字母大寫,其他字母小寫。
-
capitalize的用法
-
用法:
-
newstr=string.capitalize()
-
-
引數
- 函式括弧內什麼都不用填寫
-
示例程式碼:
-
name='ckk' print(name.capitalize())#Ckk name2='Ckk' print(name2.capitalize())#Ckk
-
-
-
capitalize的注意事項
- 只對第一個字母大寫有效
- 只對字母有效
- 已經是大寫,則無效
字串的小寫函式
-
casefold與lower功能
- 將字串全體小寫
-
casefold與lower用法
-
#函式括弧內什麼都不用填寫 newstr=string.casefold() newstr=string.lower()
-
-
casefold與lower的注意事項
- 只對字串中的字母有效
- 已經是小寫則無效
-
casefold與lower的區別
- lower函式只支援ascill表中的字元,而casefold則支援很多不同種類的語言。
-
示例程式碼
-
name='CKK' print(name.casefold())#ckk name2='Ckk' print(name2.lower())#ckk
-
字串的upper函式
-
upper的功能
- 將字串全體大寫
-
upper的用法
-
用法:
-
big_str=string.upper()
-
-
引數:
- 函式括弧內什麼都不用填寫
-
示例程式碼:
-
name='ckk' print(name.upper())#CKK name2='CKk' print(name2.upper())#CKK
-
-
-
upper的注意事項
- 只對字串中的字母有效
- 已經是大寫,則無效
字串的swapcase函式
-
swapcase的功能
- 將字串中大小寫字母進行轉換
-
swapcase的用法
-
用法:
-
newstr=string.swapcase()
-
-
引數
- 函式括弧內什麼都不用填寫
-
示例程式碼:
-
name='ckk' print(name.swapcase())#CKK name2='CKk' print(name2.swapcase())#ckK
-
-
-
swapcase的注意事項
- 只對字串中的字母有效
字串的zfill函式
-
zfill的功能
- 為字串定義長度,如不滿足,缺少的部分用0填補
-
zfill的用法
-
用法:
- newstr=string.zfill(width)
-
引數:
- Width:新字串希望的寬度
-
示例程式碼:
-
name='ckk' print(name.zfill(10))#0000000ckk name2='ckk' print(name2.zfill(3))#ckK
-
-
-
zfill的注意事項
- 與字串的字元無關
- 如果定義長度小於當前字串長度,則不發生變化。
字串的count函式
-
count的功能
- 返回當前字串中某個成員(元素)的個數
-
count的用法
-
用法:
- string.count(sub)
-
引數:
- 括弧裡需要傳一個你想查詢個數的元素,返回一個整數
-
示例程式碼:
-
name='ckk' print(name.count('k'))#2 print(name.count('a'))#0 name2='jalksdjlkJdkljalskdjlkqnc2oijo23kfnknslkdjflkjsalkdjfkahdfkjabdkjfbaj' print(name2.count('j'))#11
-
-
-
count的注意事項
- 如果查詢的成員(元素)不存在,則返回0
- count函式可以限制字串的欄位,學習索引後會不上該知識點。
字串的startswith和endswith函式
-
startswith和endswith的功能
- startswith判斷字串開始是否是某成員(元素)
- endswith判斷字串結尾是否是某成員(元素)
-
startswitch和endswitch的用法
-
#你想查詢匹配的元素,返回一個布林值 string.startswith(sub) string.endswith(sub)
-
-
示例程式碼:
-
name='ckk' print(name.startswith('c'))#True print(name.startswith('a'))#False print(name.endswith('c'))#False print(name.endswith('k'))#True
-
字串的find與index函式
-
find和index的功能
- find好index都是返回你想尋找的成員的位置。
-
find和index的用法
-
用法:
-
# sub你想查詢的元素,返回一個整型 string.find(sub) # sub你想查詢的元素,返回一個整型或者報錯 string.index(sub)
-
-
ps:字串裡的位置是從0開始的。
-
示例程式碼:
-
name='my name is ckk' print(name.find('c'))#True print(name.find('z'))#-1 print(name.index('c'))#11 print(name.index('z'))#報錯 ValueError: substring not found
-
-
-
find與index的區別
- 如果find找不到元素,會返回-1
- 如果index找不到元素,會導致程式報錯
字串的strip函式
-
strip的功能
- strip將去掉字串左右兩邊的指定元素,預設是空格。
-
strip的用法
-
用法:
-
newstr=string.strip(sub)
-
-
引數:
- 括弧裡需要傳一個你想去掉的元素,可不填寫
-
示例程式碼:
-
name=' my name is ckk ' print(name.strip())#my name is ckk print(name.lstrip(' m'))#y name is ckk print(name.rstrip(" k"))# my name is c
-
-
-
strip的擴充套件知識
- 傳入的元素如果不在開頭或結尾則無效
- lstrip僅去掉字串開頭的指定元素或空格
- rstrip僅去掉字串結尾的指定元素或空格
字串的replace函式
-
replace的功能
- 將字串中的old(舊元素)替換成new(新元素),並能指定替換的數量
-
replace的用法
-
用法:
-
newstr=string.replace(old,new,max)
-
-
引數:
- old:被替換的元素
- new:替代old的新元素
- Max:可選,代表替換幾個,預設全部替換全部匹配的old元素。
-
-
示例程式碼:
-
name = ' my name is ckk,ckk , ' print(name.replace("ckk", "cgq")) # my name is cgq,cgq , print(name.replace("ckk", 'cgq', 1)) # my name is cgq,ckk ,
-
字串中返回bool型別的函式集合
-
isspace
-
功能:
- isspace判斷字串是否是一個由空格組成的字串
-
用法:
-
# 無引數可傳,返回一個布林型別 booltype=string.isspace()
-
-
示例程式碼:
-
name=' ckk' print(name.isspace())#False names=' ' print(names.isspace())#True
-
-
Ps:由空格組成的字串,不是空字串:‘ ‘ != ’ ‘
-
-
istitle
-
功能:
- istitle:判斷字串是否是一個標題型別
-
用法:
-
#無引數可傳,返回一個布林型別 booltype=string.istitle()
-
-
示例程式碼:
-
title='My Name Is Ckk' title_2='My name is ckk' print(title.istitle())#True print(title_2.istitle())#False
-
-
ps:該函式只能用於英文
-
-
isupper和islower
-
功能:
- isupper:判斷字串中的字母是否都是大寫
- islower:判斷字串中的字母是否都是小寫
-
用法:
-
#無引數可傳,返回一個布林型別 booltype=string.isupper() booltype=string.islower()
-
-
示例程式碼
-
msg='my name is ckk' print(msg.isupper())#False print(msg.islower())#True msg='MY NAME IS CKK' print(msg.isupper())#True print(msg.islower())#False
-
-
Ps:只檢測字串裡的字母,對其他字元不做判斷
-
-
join和split後章節見
- 我們資料型別轉換的時候詳解
字元的編碼格式
-
什麼是編碼格式
- 有一定規則的規則
- 使用了這種規則,我們就能知道傳輸的資訊是什麼意思
-
常見的編碼格式
-
ASCII英文編碼
-
#coding:ascii print('哈哈')#??
-
#coding:ascii print('haha')#haha
-
-
gbk是中文編碼
-
-
通用的編碼格式
-
utf-8是一種國際通用的編碼格式
-
# coding:utf-8 print('哈哈')#哈哈 print('haha')#haha
-
字串的格式化
-
什麼是格式化
-
一個固定的字串中有部分元素是根據變數的值而改變的字串
-
今天是xx,星期xx,大家好 date='20210810'
-
-
使用格式化場景和目的
- 傳送郵件的時候
- 傳送簡訊的時候
- App上發推送的時候
- 對於重複性很多的資訊,通過格式化的形式,可以減少程式碼的書寫量
-
格式化的三種方式
根據型別定義的格式化
-
字串格式化使用操作符%來實現。
-
msg='my name is %s,my age is %s'%('ckk','28')
- 對應格式符的變數,變數與格式符按順序一一隊形,數量保持一致,超過1個格式化變數用小括號包裹。
- 格式化字串與格式符變數之間用一個%s連線,%兩邊有一個空格。
字串格式化函式-format
-
string.format函式用來格式化字串
-
使用format的字串主體使用{}大括號來替代格式符
-
string.format(data,data,data.....)
-
print('hello {0},今天看起來起色{1}'.format('Ckk','不錯'))#hello Ckk,今天看起來起色不錯
Python3.6加入的新的格式化方法---f-strings
-
定義一個變數
-
字串前加f符號
-
需要格式化的位置使用{變數}
-
name='ckk' print(f'hello {name}')#hello ckk
字串格式化的符號
-
用於對應各種資料型別的格式化符號------格式化符號
字串的轉義字元
-
什麼是轉義字元
- 字元要轉成其他含義的功能,所以我們叫他轉義字元
- \+字元
-
Python中的轉義字元們
-
轉義無效符
-
在Python中在字串前加r來將當前字串的轉義字元無效化
-
print(r'hello \f')#hello \f
-