【Python应用】判断一个字符串是不是ip地址

  • 功能实现的方式有很多种,可以慢慢去发现研究。有其他想法的小伙伴也可一起分享一下哦~

方式一:使用切片,split()

 ip_str = '192.168.40.107' 
 ip_list = ip_str.split(".") # 将字符串按点分割成列表
 is_ip = True # 先假设ip合法
 if len(ip_list) != 4: 
 is_ip= False 
 else: 
 for num in ip_list: 
 if not isdigit(num) or not 0 <= int(num) <= 255: 
 is_ip = False 
 if is_ip: 
 print("是ip") 
 else: 
 print("不是ip")

方式二:使用map函数,map()

def check_ipv4(str):
    ip = str.strip().split(".")
    return False \
        if len(ip) != 4 or False in map(lambda x: True if x.isdigit() and 0 <= int(x) <= 255 else False, ip) \
        else True

方式三:使用正则表达式

for i in range(3):
    ip_str = input("请输入IP地址:")
    i += 1
    regular = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
    if regular.match(ip_str):
        print("您输入的ip地址合法!")
    else:
        print("您输入的ip地址不合法,请重新输入!")
        
# 输出:请输入IP地址:152.12.1.1
# 您输入的ip地址合法!
# 请输入IP地址:1.01544.12.
# 您输入的ip地址不合法,请重新输入!
# 请输入IP地址:154.15.10.1
# 您输入的ip地址合法!

你可能感兴趣的:(Python,python,正则表达式,算法)