You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用\t制表符输出IPv4解析结果时格式错位如何解决

问题原因

制表符\t的对齐规则是按每8个字符为一个固定跳格位,当某段内容的长度跨过8字符的整数倍边界时,后续制表符的落点就会偏移,无法保证列对齐。另外原有代码里第一列的标签长度不统一(比如Address:后无空格、Network: 后多带一个空格),进一步放大了错位问题。

修复方法

放弃用\t凑对齐的写法,直接用Python字符串固定宽度格式化语法,给每一列指定固定预留宽度,内容长度不足时自动补空格,从根源上保证列对齐。

IPv4点分十进制格式的最大固定长度为15字符(例如255.255.255.255),给第二列预留15字符宽度即可覆盖所有情况;第一列标签统一预留10字符宽度左对齐,即可保证所有列整齐。

修复后的打印代码如下:

print("")
# 固定列宽格式化,左对齐自动补空格
print(f"{'Address:':<10}{parts[0]:<15}{binary_ip}")
print(f"{'Netmask:':<10}{subnet_mask:<15}{subnet_mask_binary}")
print(f"{'Wildcard:':<10}{wildcard_:<15}{binary_wildcard}")
print("-" * 70)
print(f"{'Network:':<10}{network_decimal:<15}{network_binary}")
print(f"{'Broadcast:':<10}{broadcast:<15}{broadcast_binary}")
print(f"{'HostMin:':<10}{hostmin_decimal:<15}{hostmin_binary}")
print(f"{'HostMax:':<10}{hostmax_decimal:<15}{hostmax_binary}")
print(f"{'Host/Net:':<10}{str(hosts)}")

格式语法说明:

  • {:<10}:表示内容左对齐,预留10个字符宽度,内容长度不足时自动在右侧补空格
  • 第二列的{:<15}:左对齐预留15个字符宽度,适配最长的IPv4点分十进制字符串,短地址自动补空格,保证后续二进制列的起始位置完全一致

内容的提问来源于stack exchange,提问作者Nischal Lamichhane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:01:41