python字符串中find函数_Python之字符串常用花哨玩法
字符串類型
在python中,字符串類型確實是一種很強大的類型,其中的功能函數更是令人震驚,這多么類都是誰寫的,太感謝他了\(^o^)/
當然,在實際工作中可能用不到那么多的函數,根據需求來嘛,一下介紹一些常用的函數。
去除填充物函數
去除指定的填充,默認是空格
>> name=input('username>>')
username>> fade
>>> name.strip()
'fade'
>>> name.lstrip()
'fade '
>>> name.rstrip()
' fade'
>>> name=input('username>>')
username>>******fade*********
>>> name.strip('*')
'fade'
>>> name.lstrip('*')
'fade*********'
>>> name.rstrip('*')
'******fade'
切分函數
函數原型類
split(self, sep=None, maxsplit=-1):
其中,sep #指定分隔符,maxsplit #最大切割多少次
>>> user_info='ntp:x:38:38::/etc/ntp:/sbin/nologin'
>>> print(user_info.split(':')) #使用后會切割成一個列表
['ntp', 'x', '38', '38', '', '/etc/ntp', '/sbin/nologin']
>>> print(user_info.split(':')[3])
38
>>> print(type(user_info.split(':')[3]))
maxsplit的使用,指定切割幾次
>>> user='w4rri0r|get|000111|crazy'
>>> print(user.split('|',1))
['w4rri0r', 'get|000111|crazy']
>>> print(user.split('|',2))
['w4rri0r', 'get', '000111|crazy']
統計字符串的長度
這個函數不用說,大家都知道,常用的到死。
>>> user='w4rri0r'
>>> len(user)
7
>>> user.__len__()
7
判斷以指定字符開頭或者結尾
判斷開頭和結尾的指定字符串是否與制定的字符串一致,返回布爾值
>>> linux='mkdir_dir&&touch a.txt'
>>> linux.endswith('txt')
True
>>> linux.startswith('mk')
True
>>> linux.startswith('mkddd')
False
替換函數
將指定字符串替換為指定字符串//如果在加上文件讀寫,按行讀取,豈不是實現了sed -i ‘ sg’的功能\(^o^)/
>>> remark='w4rri0r is 18'
>>> print(remark.replace('w4rri0r','fade'))
fade is 18
>>> print(remark.replace('w4rri0r','fade'))
fade is 18,fade,fade,fade
>>> print(remark.replace('w4rri0r','fade',2))
fade is 18,fade,fade,w4rri0r
>>> print(remark.replace('w4rri0r','fade',1))
fade is 18,w4rri0r,fade,w4rri0r
格式化輸出函數,format的三種玩法
第一種玩法。使用{}進行占位操作,然后輸出后面指定的字符串
>>> print('name:{} | age:{} | sex:{},by {}'.format('w4rri0r','18','man','w4rri0r'))
name:w4rri0r | age:18 | sex:man,by w4rri0r
第二種玩法。可以使用下標的方式,進行給與其定位
>>> print('name:{0} | age:{1} | sex:{2},by {0}'.format('w4rri0r','18','man'))
name:w4rri0r | age:18 | sex:man,by w4rri0r
第三種玩法。使用keyvalues形式,進行指定輸出
>>> print('name:{name} | age:{age} | sex:{sex},by {name}'.format(name='w4rri0r',age='18',sex='man'))
name:w4rri0r | age:18 | sex:man,by w4rri0r
第四種玩法。使用傳參的形式,進行格式化輸出
>>> name='w4rri0r'
>>> age=18
>>> sex='man'
>>> print('name:{} | age:{} | sex:{},by {}'.format(name,age,sex,name))
name:w4rri0r | age:18 | sex:man,by w4rri0r
判斷字符串中是否包含有數字
>>> num='123'
>>> print(num.isdigit())
True
isdigit()
True: Unicode數字,byte數字(單字節),全角數字(雙字節),羅馬數字
False: 漢字數字
Error: 無
isdecimal()
True: Unicode數字,,全角數字(雙字節)
False: 羅馬數字,漢字數字
Error: byte數字(單字節)
isnumeric()
True: Unicode數字,全角數字(雙字節),羅馬數字,漢字數字
False: 無
Error: byte數字(單字節)
isalpha()? 判斷是不是字母
isspace()? 判斷是不是空格
查找函數,find,index
查找字符串函數
>>> name='w4rri0r'
>>> name.find('r') #查找字符串,從左到右匹配第一個,存在即返回第一個匹配到的下標
2
>>> name.find('a') #沒有匹配到,則返回-1
-1
>>> name.find('r',3,6) #可以指定區間查找
3
>>> name.find('4r')
1
>>> name.find('4i')
-1
同樣是查找函數index(),在用法上都是一樣的,指定要查找的字符串,只能查找第一層的字符串,同時還可以指定區間查找指定的字符串。唯一的區別就是,index在查找不見指定字符時,會出現報錯,not in string,使用find函數則不會,會返回-1這個值,用以表示不存在。
其他查找函數:
.rfind 從右開始向左查找
.count統計查找到的次數
>>> name='w4rri0r'
>>> name.rfind('r')
6
>>> name.rfind('0')
5
>>> name.count('r')
3
拼接字符串,并指定分隔
可以將列表中的字符串拼接成一個字符串,并且還能添加指定的字符進行分割操作。
>>> l=['w4rri0r','say','hello','word']
>>> ':'.join(l) #':' 指定的分隔字符,(l)需要拼接的字符串列表
'w4rri0r:say:hello:word'
限制,只能是字符串,不能拼接,字符串和數字
填充字符串函數
center(self, width, fillchar=None)
該類的參數,有兩個,width,指定寬度,fillchar,需要填充的字符
>>> name='w4rri0r'
>>> name.center(7,'\\') #反斜杠帶有轉義的意思,所以需要用兩個反斜杠
'w4rri0r'
>>> name.center(7,'ra') #不能用兩個字符
Traceback (most recent call last):
File "", line 1, in
TypeError: The fill character must be exactly one character long
>>> name.center(7,'O') #如果長度設置為原字符串長度,則不填充
'w4rri0r'
>>> name.center(10,'*') #長度為10,原字符串長度為7,添加到10即可
'*w4rri0r**'
還有一些其他衍生函數
>>> name='w4rri0r'
>>> print(name.ljust(11,'*')) #與正常人類相反,l是右,r是左
w4rri0r****
>>> print(name.rjust(11,'*'))
****w4rri0r
>>> print(name.zfill(10)) #zfill是默認填充的0
000w4rri0r
大小寫轉換
各種花哨的用法
>>> name='W4RRRI0R'
>>> name.lower() #將大寫的字符全部轉換為小寫,同時該類沒有需要傳入的參數
'w4rrri0r'
>>> name='w4rrri0r'
>>> name.upper() #將所有小寫的字符全部轉換為大寫
'W4RRRI0R'
>>> name.capitalize() #將首字母大寫
'W4rrri0r'
>>> name='W4rri0r'
>>> name.swapcase() #大小寫反轉函數
'w4RRI0R'
>>> name='fade,crazy*w4rri0r_songsong node_3'
>>> uName=s.title()?? #根據特殊字符,數字進行切割,然后將首字母大寫
>>> uName
'Fade,Crazy*W4Rri0R_Songsong Node_3'
下面來一個實際用例,驗證碼的驗證方式:
s_str='ac4EQ'
you_input=input('請輸入驗證碼>>')
if s_str.upper()== you_input.upper():
print('輸入成功')
====================直接貼結果啦,哈哈========================
請輸入驗證碼>>ac4eq
輸入成功
tab函數的用法
該函數就有些雞肋的感覺了,用處不是很大,但是也總結上來了,看下吧~
原型類
expandtabs(self, tabsize=8) #這單詞解釋這么明顯,tab大小默認為8個
來些實例看下
>>> name='werri0r\tsir'
>>> name.expandtabs()
'werri0r sir'
>>> name='werr\tsir'
>>> name.expandtabs()
'werr sir'
OK,就這么多了,日后有學習的,就在添加吧,吃飯去嘍(*^__^*)
W4rr10r 版權所有丨如未注明 , 均為原創丨本網站采用BY-NC-SA協議進行授權 , 轉載請注明Python之字符串常用花哨玩法!
總結
以上是生活随笔為你收集整理的python字符串中find函数_Python之字符串常用花哨玩法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python六角形的绘制 编程_利用Py
- 下一篇: excel进销存管理系统_通用Excel