文章

5

粉丝

495

获赞

1

访问

45.2k

头像
1023-IP地址(Python实现)
P1023 贵州大学机试题
发布于2021年2月15日 19:28
阅读数 7.1k

def Convert(n):
    res=""
    table="0123456789ABCDEF"
    while n>0:
        res+=table[n%16]
        n//=16
    if len(res)<2:
        res+="0"*(2-len(res))
    
    return res[::-1]


inp=input().split(".")
if len(inp)!=4:
    print("Error")
else:
    res="0x"
    for numstr in inp:
        try:
            num=int(numstr)
            if num>255 or num<0:
                print("Error")
                break
            else:
                res+=Convert(num)
                if len(res)==10:
                    print(res)
        except:
            print("Error")
            break
    

实现思路:

①读入字符串,按照“.”分割字符串形成列表,判断列表中字符串的个数,若个数为4则进一步判断;否则为不合法的ip地址,退出。

②对于分割后的列表中每一个子串,尝试转换为整型,若出现异常则说明含有整数数字之外的字符,属于不合法的ip地址,退出;否则进一步判断。

③转换为整型的数字在[0,255]内,则为正确的ip地址的一部分,转换为16进制后拼接进入res字符串:若res长度为10(前导0x+4组两位16进制数,共10位),输出,再转到②读下一个子串,否则不输出,转到②;否则属于不合法的ip地址,退出。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发