Python 3.x 如何在Python中正确格式化输出?

Python 3.x 如何在Python中正确格式化输出?,python-3.x,binary,type-conversion,hex,octal,Python 3.x,Binary,Type Conversion,Hex,Octal,这是我的代码: 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) 预期输出和我的输出在下面给出的图像链接中 假设这是HackerRank的“字符串格式”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)
预期输出和我的输出在下面给出的图像链接中


假设这是HackerRank的“字符串格式”Python挑战,那么您的代码缺少的是指令中的“每个值都应该填充空格以匹配二进制值n的宽度”。因此,您需要确定函数“number”输入参数的二进制版本的数字长度,然后打印从1到“number”的数字的十进制、八进制、十六进制和二进制版本,并使用前导空格再次匹配该长度。使用屏幕截图中的示例测试用例2,因为二进制中的2(10)是两位数长,所以您打印的所有只有一位数长的数字都需要用前导空格填充,例如“1”而不是“1”。

您好,欢迎使用Stack Overflow。请在问题中包含代码、所需输出和当前输出作为文本。看见
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, ' '))