如何正确格式化 Python 中的输出?

How to properly format the output in Python?

这是我的代码:

def print_formatted(number):
    for i in range(1,number+1):
        print("{0: d} {0: o} {0: x} {0: b}".format(i)) 

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

预期输出和我的输出在下面给出的图像 link 中。

This is the image of my output and the expected output in hackerrank

This is the code i have written.

假设这是 HackerRank 的 "String Formatting" Python 挑战,您的代码在这里缺少的是说明的 "Each value should be space-padded to match the width of the binary value of n." 部分。因此,您需要确定函数 "number" 输入参数的二进制版本的数字长度,然后打印从 1 到 "number" 的每个十进制、八进制、十六进制和二进制版本的数字前导 spaces 再次匹配该长度。使用屏幕截图中的示例测试用例 2,因为二进制中的 2 -- 10 -- 是两位数长,所以您打印的所有只有一位数长的数字都需要用前导 space 填充,因为例如“1”而不是“1”。

for i in range(number):
    i = i+1
    
    pad = len("{0:b}".format(number))
    width = ''
    for j in range(pad):
        width = width + ' '
    # print ("{}".format(width) + "{0:o}".format(int(i)), end="")
    # print ("{}".format(width) + "{0:X}".format(int(i)), end="")
    # print ("{}".format(width) + "{0:b}".format(int(i)))
    print ("{}".format(i).rjust(pad, ' '), end="")
    print (("{0:o}".format(int(i))).rjust(pad+1, ' '), end="")
    print (("{0:X}".format(int(i))).rjust(pad+1, ' '), end="")
    print (("{0:b}".format(int(i))).rjust(pad+1, ' '))