Python练习之IP地址合法性判断

Jillian ·
更新时间:2024-11-13
· 910 次阅读

Python练习之IP地址合法性判断
互联网上的每台计算机都有-一个IP,合法的IP格式为: A.B.C.D。 其中
A、B、C、D均为[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001。 现在给你-一个字符串s (s不含空白符),请你判断s是不是合法IP,若是,输出Yes,否则输出No。如: s=“202.115.32.24”, 则输出Yes; s=“a.11.11.11”, 则输出No
''' 切分IP地址 判断第i个是否符合要求 先判断是否为整数 再判断首位是否为0 再判断是否在0-255内 都符合 为Yes ''' loc=input() mem=loc.split('.') isip=False if len(mem)!=4:#如果个数不为4 isip=False else:#此时有4位 for i in range(4): try: a=int(mem[i])#判断是否为整数,并赋值 if(mem[i][0]==0): isip=False break else: if(a>255 or a<0): isip=False break else: isip=True except: isip=False break if isip==True: print ("YES") else: print("NO")

一、运用知识点:
1.列表拆分split方法

2.先设定“真”“假”变量,最后再进行判断 (亮点)

3.try 与except用法

4.系统自带isinstance()函数,判断是否为int类型

二、一些尝试

1.想得到二维数组,于是split了两次:
第一次是mem=loc.split(’.’)
第二次又用了icon=mem.split()
但后来发现无需如此操作,只需“mem[i][0]==0”直接当二维数组使用即可
可见,pythton 比 C++更接近自然语言

2.python中且和或不是(&&)和(||)而是(and)和(or)

3.int(i)只能转化全由数字组成的str为int

4.本来用的是exit(),但是会在spyder环境下会直接重启,其退出执行整个程序的效果只能在编译器中显现。所以后来用break,替代了exit。


作者:FirstOfSky



python练习 ip Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号