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,将其返回

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值