第七天学习,一定要动手,去实现ip的合法性校验
# 思路一
"""
步骤:
1.ip两端去空格
2.将他分割为列表
3.判断,列表的长度是否等于4
等于:继续下一步操作
不等于:则ip不合法
4.使用for循环去遍历列表的每一个值
5.判断是否全为数字
判断是否大于等于0且小于等于255
如果满足条件 flag赋值为True
不满足则flag赋值为False,结束循环
6.遍历完成后,使用flag的值进行判断
flag为true 则ip合法
flag为false 则ip不合法
"""
ip1 = "123.0.0.0 "
ip1 = ip1.strip()
ips1 = ip1.split(".")
if len(ips1) == 4:
for p in ips1:
if p.isdigit() and 0 <= int(p) <= 255:
flag = True
else:
flag = False
break
else:
flag = False
if flag:
print("this ip is a lagel!")
else:
print("this ip is an illagel!")
"""
总结:
该思路使用的flag作为标记,若条件全满足时flag为True,不满足时flag为False
最后使用flag的值去判断
循环语句中使用break,当条件满足时,True为合法ip,False为非法ip
当某个条件为True时,可以将if flag == True: 简写为 if flag:
"""
# 思路二
"""
步骤:
1.去掉前后空格
2.将字符串分割成列表
3.设置计数器,并初始值为0
4.遍历列表
5.判断列表的每一个值
6.全为数字
每个数值必须大于等于0小于等于255
满足条件是计数器+1
7.使用计数器去判断
"""
ip2 = " 123.0.0.3 "
ip2 = ip2.strip()
ips2 = ip2.split(".")
count = 0
for p in ips2:
if p.isdigit() and 0 <= int(p) <= 255:
count += 1
if count == 4:
print("this ip is a lagel!")
else:
print("this ip is an illagel!")
"""
总结:
该思路是使用计数器count去计数,当count满足为4时,则ip合法,否则不合法
该思路新增一个知识点,即count+=1 等同于count=count+1
"""
# 思路三
"""
# 步骤:
# 1.去空格
# 2.将字符串切割为列表
# 3.判断长度是否为4
# 若满足条件则继续,否则结束并打印ip不合法
# 4.遍历列表
# 5.判断列表的每一项值
# 不全是数字
# 小于0 或 大于255
# 则结束循环,打印IP不合法
# 6.若以上都不满足则打印ip合法
#
# """
ip3 = "112.0.3.3 "
ip3 = ip3.strip()
ips3 = ip3.split(".")
if len(ips3) == 4:
for p in ips3:
if not p.isdigit() or int(p) < 0 or int(p) > 255:
print("this ip is a illagel!")
break
else:
print("this ip is a lagel! ")
else:
print("this ip is a illagel!")
"""
总结:
使用逆向思维,判断值是否不满足条件
新知识点:for...else.. for循环中必须有break,当没有执行break语句时
则会执行else语句,反之。
"""
# 思路四
"""
步骤:
1.去字符串两端空格
2.将字符串切割为列表
3.判断长度是否为4
等于4时,继续下一步操作
不等于4时,打印ip不合法
4.使用索引的方式循环遍历列表的每个值
5.判断是否为数字,是否大于等于0或小于等于255
若下标等于3的时候,则ip合法
否则ip不合法,使用break退出循环
"""
ip4 = "121.0.1.1 "
ip4 = ip4.strip()
ips4 = ip4.split(".")
L = len(ips4)
if L == 4:
for p in range(L):
if ips4[p].isdigit() and 0 <= int(ips4[p]) <=255:
if p == 3:
print("this ip is a lagel!")
else:
print("this ip is an illagell!")
break
else:
print("this ip is an illagel!")
"""
# 总结:
该思路是使用列表的下标去判断,当下标执行到3时ip合法,否则IP不合法
新知识点:range()
"""