题目:字符串格式化--String Format

题目要求:
给定一个整数n,打印从1到n的整数,并按以下格式打印输出:
- 十进制
- 八进制
- 十六进制(大写)
- 二进制
解题代码:
方法1:使用format()对数字进行格式转换
def print_formatted(number):
width = len(format(number, 'b'))
list_num = []
for num in range(1, number + 1):
num_dec = format(num, 'd')
num_oct = format(num, 'o')
num_hex = format(num, 'X')
num_bin = format(num, 'b')
line = f"{num_dec:>{width}} {num_oct:>{width}} {num_hex:>{width}} {num_bin:>{width}}"
list_num.append(line)
print('\n'.join(list_num))
if __name__ == '__main__':
n = int(input())
print_formatted(n)
方法2,:切片,使用oct()、hex()、bin()方法
def print_formatted(number):
width = len(bin(number))-2
field = lambda x: "{{: >{}}}".format(width).format(x)
for i in range(1, number + 1):
print(" ".join(map(field, [i, oct(i)[2:], hex(i)[2:].upper(), bin(i)[2:]])))
if __name__ == '__main__':
n = int(input())
print_formatted(n)
文章评论