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

Python数字格式化输出问题:如何实现二进制列的空格对齐?

解决多进制输出的对齐问题

你的代码已经能正确输出各进制数值,要实现列对齐,核心是统一所有列的宽度,以最大数n的二进制位数作为基准宽度即可:

def print_formatted(n):
    # 计算最大数的二进制位数(去掉bin()返回的'0b'前缀)
    width = len(bin(n)) - 2
    for i in range(1, n+1):
        # 按统一宽度右对齐输出各进制值,十六进制转大写更贴合示例样式
        print(f"{i:>{width}} {oct(i)[2:]:>{width}} {hex(i)[2:].upper():>{width}} {bin(i)[2:]:>{width}}")

if __name__ == '__main__':
    n = int(input())
    print_formatted(n)

关键说明:

  • width = len(bin(n)) - 2:获取n的二进制字符串长度(去掉0b前缀),这是所有列需要对齐的基准宽度
  • f"{i:>{width}}":用格式化字符串实现右对齐,>表示右对齐,width指定宽度,不足的位置会自动补空格
  • 十六进制转大写(.upper())是为了和示例里的样式一致,不需要的话可以去掉这个方法

内容的提问来源于stack exchange,提问作者Arjun Hooda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:05:41