天天蓝海

  • 首页
  • Python学习
    • HackRank挑战
  • 纪念墙
天天蓝海
学习、记录
  1. 首页
  2. Python学习
  3. HackRank挑战
  4. 正文

【Python学习】-Hackrank挑战-字符串-字符串格式化

2025年3月16日 369点热度 0人点赞 0条评论

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


题目要求:

给定一个整数n,打印从1到n的整数,并按以下格式打印输出:

  1. 十进制
  2. 八进制
  3. 十六进制(大写)
  4. 二进制

解题代码:

方法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)
标签: HackRank Challenge
最后更新:2025年3月16日

timmyblue

我们没有说再见,只是很默契的没有打扰。

点赞
< 上一篇
下一篇 >

归档

  • 2025 年 3 月
  • 2025 年 2 月

分类

  • HackRank挑战
  • Python学习

Copyright © 天天蓝海 All Rights Reserved.

苏ICP备2025161349号