Python中字符串String的基本內置函數與過濾字符模塊函數的基本用法


Python中字符串String的基本內置函數與用法

首先我們要明白在python中當字符編碼為:UTF-8時,中文在字符串中的占位為3個字節,其余字符為一個字節

下面就直接介紹幾種python中字符串常用的幾種字符串內置函數(本文中牽扯到了模塊與一些之前章節沒講過的相關知識,坑我之后會填的)

字符串切片(截取字符串):

#字符串切片 string[開始位置:結束位置:步長]
name = "鞏禕鵬"print(name[0:])
 #從第一個字符截取到最后一個字符
print(name[0:2]) 
#從第一個字符截取到第二個字符
print(name[:3]) 
#從第一個字符截取到第三個個字符
print(name[0:3:2])
 #從第一個字符截取到最后一個字符,每次步長為2

輸出結果如下:

鞏禕鵬
鞏禕
鞏禕鵬
鞏鵬

分割字符串:

#分割字符串 split()函數 string.splist(sep,maxsplit)
#string.splist(用於指定分隔符(如果沒有參數,默認為None即空格),
分割次數(默認為-1,即沒有限制))
#eg

word ="所 有 風 光 的 背 后,最 終 都 要 用 孤 獨 來 償 還"
print(word.split()) #默認為用空格進行分割 print(word.split(',')) #使用逗號(,)進行分割 print(word.split(' ',5)) #使用空格(None) 來進行分割,且只分割前五個字符

輸出結果如下:

['', '', '', '', '', '', '后,最', '', '', '', '', '', '', '', '', '']
['所 有 風 光 的 背 后', '最 終 都 要 用 孤 獨 來 償 還']
['', '', '', '', '', '背 后,最 終 都 要 用 孤 獨 來 償 還']

可以看出,分割完字符串后,返回值為數組.

檢索字符串:count()函數 以及 find()函數 index()函數 startswitch()函數 endswitch()函數

count()函數

#count()方法 返回值為:int 用於檢索指定字符在另外一個字符串中出現的次數,如果檢索的字符不存在則會返回0.
#語法為string.count(sub[start[end]]) string:被檢索的字符串 sub:要檢索的字符 start:可選,開始位置 end:可選,結束位置
#eg:
demoStr = "@中國,@美國,@英國"
print(demoStr.count('@'))
print(demoStr.count(''))

輸出結果如下:

3
3

find()函數

#find()函數 返回值為:int 用於檢索指定字符在另外一個字符串中第一次出現的下標,如果沒有發現字符則會返回-1
#語法為string.find(sub[start[end]]) string:被檢索的字符串 sub:要檢索的字符 start:可選,開始位置 end:可選,結束位置
#eg:
testStr = "123123123"
print(testStr.find('1'))
print(testStr.find('3'))

輸出結果如下:

0
2

index()方法 返回值為:int 與find()方法類似 只是如果index()方法沒有查找到字符將會拋出異常

startswitch()方法與endswitch()方法

#startswitch()方法與endswitch()方法 返回值:boolean
 用於檢索是否以指定字符串開頭亦或者是結尾
#語法:string.startswitch(sum[,start[,end]]) string.endswitch(sum[,start[,end]])
#eg:
email = "g2982272986@qq.com"
print(email.startswith('g'))
print(email.endswith('.com'))

輸出結果如下:

True
True

字符串轉換大小寫 lower()方法 upper()方法

#lower()轉小寫 語法: string.lower()
#eg:
demoStr_lower = "sfSLDFsdlfk"
print("原字符串為"+demoStr_lower)
print("轉換后為:"+demoStr_lower.lower())

#upper()轉大寫 語法:string.upper()
#eg:
demoStr_upper = "sfSLDFsdlfk"
print("原字符串為"+demoStr_upper)
print("轉換后為:"+demoStr_upper.upper())

輸出結果:

原字符串為sfSLDFsdlfk
轉換后為:sfsldfsdlfk
原字符串為sfSLDFsdlfk
轉換后為:SFSLDFSDLFK

過濾字符串: re模塊中的sub函數

直接上代碼,看完演示就懂了

#定義一個函數來過濾字符串
#語法:#sub(repl, string[, count]) 或 re.sub(pattern, repl, string[, count]):
#第一個參數:需要屏蔽的關鍵詞 第二個參數:過濾后替換原來關鍵字的字符串 第三個參數:需要過濾的字符串 #使用repl替換string中每一個匹配的子串后返回替換后的字符串。 def filterfar(string): """ 用於過濾字符串 :param 需要過濾的字符串: 參數 :return: 過濾后的字符串 """ # 導入模塊 import re #需要過濾的關鍵字 string_re = r"(黑客)|(監聽)" #過濾字符串 sub = re.sub(string_re,"= =!",string) #第一個參數:需要屏蔽的關鍵詞 第二個參數:過濾后替換的問題 第三個參數:需要過濾的字符串 print(sub) #打印輸出 filterfar("我是一名黑客") filterfar("我現在正在監聽你")

輸出結果:

我是一名= =!
我現在正在= =!你

可以看到黑客以及監聽二字被過濾成= =!了

至於語法中為什么有一個函數是直接函數名sub調用,一個是re.sub來調用,后續講到模塊時會講到.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM