我正在编写一个脚本,该脚本以二进制形式读取子网并将其转换为十进制。脚本需要输出以句点分隔的十进制结果(即输出如下所示:255.255.255.0)。

我正在尝试使用sep ="."用句点分隔打印,但是,这似乎不起作用。我怀疑这可能是因为它每次都打印单个输出,而不是将一个完整的语句连接在一起。我尝试了end= ".",但这不是一个选择,因为它在输出的末尾增加了一个额外的句点。

这是脚本的片段:

sub1 = "1111 1111.1111 1111.1111 1111.0000 0000"
octets = [sub1[0:9], sub1[10:19], sub1[20:29], sub1[30:39]]

for conversion in octets:
    print(int((conversion).replace(" ",""), 2), sep=".")


如何使打印输出与句点分开?

最佳答案

替换所有空格一次,在'.'上拆分字符串以创建列表,然后在转换八位字节后使用.join重建字符串:

sub1 = "1111 1111.1111 1111.1111 1111.0000 0000"
octets = sub1.replace(' ', '').split('.')

print('.'.join(map(str, [int(i, 2) for i in octets])))
# 255.255.255.0

关于python - 在for循环中分隔打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40533509/

10-13 06:18