题解 | 两个场景分开写就可以了
整数与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