温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何处理字符串

发布时间:2022-03-16 13:50:05 来源:亿速云 阅读:141 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“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如何处理字符串”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI