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