题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
while True: try: x = input().split(".") y = input().split(".") z = input().split(".") //从用户那里获取三个用点分隔的字符串,然后分别存储在变量 x、y 和 z 中。这些字符串代表IP地址 # 将输入的字符串转换为整数列表 x = [int(i) for i in x] y = [int(i) for i in y] z = [int(i) for i in z] # 检查IP地址的有效性 if x[0] != 255 or x[3] != 0 or max(x + y + z) > 255 or min(x + y + z) < 0: print("1") else: m = [] n = [] for i in range(len(x)): # 转换为二进制字符串,并去掉前缀'0b' x[i] = bin(x[i]).replace("0b", "") y[i] = bin(y[i]).replace("0b", "") z[i] = bin(z[i]).replace("0b", "") # 计算按位与,并添加到列表中 m.append(int(x[i], 2) & int(y[i], 2)) n.append(int(x[i], 2) & int(z[i], 2)) # 比较两个列表是否相等 if m == n: print("0") else: print("2") except: # 捕获所有异常,但不打印错误信息 break # 遇到异常则退出循环