您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“python如何處理字符串”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python如何處理字符串”這篇文章吧。
字符串處理技巧
1. 清理用戶輸入
對輸入的的值進(jìn)行清理處理,是常見的程序要求。比如要做大小寫轉(zhuǎn)化、要驗(yàn)證輸入字符的注入,通??梢酝ㄟ^寫正則用Regex來做專項(xiàng)任務(wù)。但是對于復(fù)雜的情況,可以用一些技巧,比如下面:
user_input = "This\nstring has\tsome whitespaces...\r\n" character_map = { ord('\n') : ' ', ord('\t') : ' ', ord('\r') : None }
在此示例中,可以看到空格字符"\n"和"\t"都被替換為空格,而 "\r"被刪除。
這是一個(gè)簡單的示例,我們還可以使用unicodedata包和combinin()函數(shù)來生成大的映射表,以生成映射來替換字符串。
2. 提示用戶輸入
命令行工具或腳本需要輸入用戶名和密碼才能操作。要用這個(gè)功能,一個(gè)很有用的技巧是使用getpass模塊:
import getpass user = getpass.getuser() password = getpass.getpass()
這三行代碼就可以讓我們優(yōu)雅的交互提醒用戶輸入輸入密碼并捕獲當(dāng)前的系統(tǒng)用戶和輸入的密碼,而且輸入密碼時(shí)候會(huì)自動(dòng)屏蔽顯示,以防止被人竊取。
3. 查找字符串頻率
如果需要使用查找類似于某些輸入字符串的單詞,可以使用difflib來實(shí)現(xiàn):
import difflib difflib.get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'], n=2)
# 返回['apple', 'ape']
difflib.get_close_matches會(huì)查找相似度最匹配的字串。本例中,第一個(gè)參數(shù)與第二個(gè)參數(shù)匹配。提供可選參數(shù)n,該參數(shù)指定要返回的最大匹配數(shù),以及參數(shù)cutoff(默認(rèn)值為0.6)設(shè)置為thr確定匹配字符串的分?jǐn)?shù)。
4. 多行字符串
Python中可以使用反斜杠:
In [20]: multistr = " select * from test \ ...: where id < 5" In [21]: multistr Out[21]: ' select * from test where id < 5'
還可以使用三引號:
In [23]: multistr ="""select * from test ...: where id < 5""" In [24]: multistr Out[24]: 'select * test where id < 5'
上面方法共有的問題是缺少合適的縮進(jìn),如果我們嘗試縮進(jìn)會(huì)在字符串中插入空格。所以最后的解決方案是將字符串分為多行并且將整個(gè)字符串包含在括號中:
In [25]: multistr = ("select * from multi_row " ...: "where row_id < 5 " ...: "order by age") In [26]: multistr Out[26]: 'select * from multi_row where row_id < 5 order by age'
5. 處理IP地址
日常常用的一個(gè)是驗(yàn)證和匹配IP地址,這個(gè)功能有個(gè)專門的模塊ipaddress可以來處理。比如我們要用IP網(wǎng)段(CIDR用IP和掩碼位)生成一個(gè)IP地址列表:
import ipaddress net = ipaddress.ip_network('192.168.1.0/27')
結(jié)果:
#192.168.1.0 #192.168.1.1 #192.168.1.2 #192.168.1.3 #...
另一個(gè)不錯(cuò)的功能IP地址是否在IP段的驗(yàn)證:
ip = ipaddress.ip_address("192.168.1.2") ip in net # True ip = ipaddress.ip_address("192.168.1. 253") ip in net # False
ip地址轉(zhuǎn)字符串、整數(shù)值的互轉(zhuǎn):
>>> str(ipaddress.IPv4Address('192.168.0.1')) '192.168.0.1' >>> int(ipaddress.IPv4Address('192.168.0.1')) 3232235521 >>> str(ipaddress.IPv6Address('::1')) '::1' >>> int(ipaddress.IPv6Address('::1')) 1
注意ipaddress還支持很多其他的功能,比如支持ipv4和ipv6等,
以上是“python如何處理字符串”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。