如何正确格式化 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, ' '))
这是我的代码:
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, ' '))