200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python判断ip地址合法性_python3简洁判断ip地址合法性

python判断ip地址合法性_python3简洁判断ip地址合法性

时间:2019-09-14 13:55:52

相关推荐

python判断ip地址合法性_python3简洁判断ip地址合法性

因为我是网络工程师,从开始学python3起就对判断ipv4地址是否合法有需求,目前这个是觉得最简洁好用的了。

def is_ipv4(ip: str) -> bool:

'检查ip是否合法'

return ([True] * 4 == [(True) if (x.isdigit() and 0 <= int(x) <= 255) else (False) for x in ip.split('.')])

几个地方给新人解释一下:

1、(ip: str) -> bool

提示而不是强制!!

提示你输入ip这个参数的类型应该是str,返回值应该是bool

def在接受参数的时候不会去强制检查参数类型

2、列表推导式

[(True) if (x.isdigit() and 0 <= int(x) <= 255) else (False) for x in ip.split('.')]),

for x in ip.split('.') 将其按小数点分割,稍后再判断每一位的值是否合法,合法就append1个True到返回列表,不合法就append1个False到返回列表

每一位的判断过程:

返回 True,如果x是数字,且在0到255的范围,

返回False,如果x不是数字(因为是and连接,前面x是false,后面就不执行判断数字范围了,假如x是非数字,这里的int(x)也不会报错,因为没有执行它)

返回False,如果x是数字,但int(x)得到的数字不在0到255的范围里面

如果每一位都合法,且列表长度为4,则列表推导式返回的列表是[True, True, True, True]

3、[True] * 4

[True] * 4 就是 [True, True, True, True]

4、return(XX == YY)

== 检查XX和YY,如果相同,结果是1个True,如果不同,结果是1个False,将其返回

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。