您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“python如何處理字符串”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python如何處理字符串”這篇文章吧。
字符串處理技巧
1. 清理用戶輸入
對輸入的的值進行清理處理,是常見的程序要求。比如要做大小寫轉化、要驗證輸入字符的注入,通常可以通過寫正則用Regex來做專項任務。但是對于復雜的情況,可以用一些技巧,比如下面:
user_input = "This\nstring has\tsome whitespaces...\r\n" character_map = { ord('\n') : ' ', ord('\t') : ' ', ord('\r') : None }
在此示例中,可以看到空格字符"\n"和"\t"都被替換為空格,而 "\r"被刪除。
這是一個簡單的示例,我們還可以使用unicodedata包和combinin()函數來生成大的映射表,以生成映射來替換字符串。
2. 提示用戶輸入
命令行工具或腳本需要輸入用戶名和密碼才能操作。要用這個功能,一個很有用的技巧是使用getpass模塊:
import getpass user = getpass.getuser() password = getpass.getpass()
這三行代碼就可以讓我們優雅的交互提醒用戶輸入輸入密碼并捕獲當前的系統用戶和輸入的密碼,而且輸入密碼時候會自動屏蔽顯示,以防止被人竊取。
3. 查找字符串頻率
如果需要使用查找類似于某些輸入字符串的單詞,可以使用difflib來實現:
import difflib difflib.get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'], n=2)
# 返回['apple', 'ape']
difflib.get_close_matches會查找相似度最匹配的字串。本例中,第一個參數與第二個參數匹配。提供可選參數n,該參數指定要返回的最大匹配數,以及參數cutoff(默認值為0.6)設置為thr確定匹配字符串的分數。
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'
上面方法共有的問題是缺少合適的縮進,如果我們嘗試縮進會在字符串中插入空格。所以最后的解決方案是將字符串分為多行并且將整個字符串包含在括號中:
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地址
日常常用的一個是驗證和匹配IP地址,這個功能有個專門的模塊ipaddress可以來處理。比如我們要用IP網段(CIDR用IP和掩碼位)生成一個IP地址列表:
import ipaddress net = ipaddress.ip_network('192.168.1.0/27')
結果:
#192.168.1.0 #192.168.1.1 #192.168.1.2 #192.168.1.3 #...
另一個不錯的功能IP地址是否在IP段的驗證:
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地址轉字符串、整數值的互轉:
>>> 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如何處理字符串”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。