题解 | 两个场景分开写就可以了

整数与IP地址间的转换

http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

def ip_num(a):
    lista = a.split('.')
    lista = list(map(int,lista))
    c=''
    for i in lista:
        j= str(bin(i))[2:]
        #print(j)
        if len(j)<8:
            j=(8-len(j))*'0'+j
        c = c+j
        #print(c)
    c = int(c,2)
    return c
def num_ip(a):
    a = int(a)
    a = str(bin(a))[2:]
    if len(a)<32:
        a= (32-len(a))*'0'+a
    listb = []
    for i in range (4):
        b = a[i*8:(i+1)*8]
        listb.append(b)
    for i in range (len(listb)):
        listb[i] = int(listb[i],2)
    listb = list(map(str, listb))
    b='.'.join(listb)
    return b

while True:
    try:
        a = input()
        if '.' in a:
            d= ip_num(a)
            print(d)
        else:
            d = num_ip(a)
            print(d)
    except:
        break

全部评论

相关推荐

02-17 20:43
西北大学 Java
在做测评的猫头鹰很紧张:他问你,你问deep seek
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务