【问题标题】:String Format for numbers数字的字符串格式
【发布时间】:2023-01-02 18:50:51
【问题描述】:
def print_formatted(n):
    for i in range(1,n+1):
       print(str(i)+' '+str(oct(i)[2:])+' '+str(hex(i)[2:])+' '+str(bin(i)[2:]))
        

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

问题是使用循环从给定数字打印八进制六边形和更多类型的数字。我得到了相同的数字,但我不知道如何制作二进制数中所需的“SPACE”(可以在最后一列的图片中看到)

https://i.stack.imgur.com/LVRhm.png

【问题讨论】:

  • 我只想说这是一个特别糟糕预期的输出。您正确地解决了任务,但现在需要担心以表格方式对齐输出,这并不像听起来那么容易,而且与要解决的实际问题完全无关。您基本上需要找出要打印的最长字符串,然后再实际打印“leftpad”/ljust 字符串。

标签: python


【解决方案1】:
def print_formatted(number):

    width = len("{0:b}".format(number))

    for i in range(1, number + 1):
        print("{0:{w}d} {0:{w}o} {0:{w}X} {0:{w}b}".format(i, w = width))

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

试试上面那个。

【讨论】:

    猜你喜欢
    • 2019-03-04
    • 2013-04-11
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多