【问题标题】:correct layout of format格式的正确布局
【发布时间】:2013-11-02 21:47:01
【问题描述】:

所以我写了一些代码,然后发现使用 format() 函数有一种更简单的方法。 我的代码是

r = int(input("Please enter a number "))
c = int(input("Please enter a number "))
numberLength=len(str(r**c))
for i in range(1,r+1):
    for j in range(1,c+1):
        currentNumber = len(str(i**j))
        print(" "*((numberLength-currentNumber)+1),end="")
        print((i**j),end="")       
    print('')

但使用 format() 函数更简洁,但我无法正确获取 format 的格式。

r = int(input("Please enter a number "))
c = int(input("Please enter a number "))
numberLength=len(str(r**c))
for i in range(1,r+1):
    for j in range(1,c+1):
        currentNumber = i**j
        {0:>{1}}.format(currentNumber ,numberLength)

如果您运行第一个 sn-p,您将看到我想要实现的目标。表中每个数字之间的差距取决于程序中的最高数字。谢谢。

【问题讨论】:

    标签: python string format


    【解决方案1】:

    使用end=' ',默认python 使用新行,这就是为什么所有数字都打印在新行上。当嵌套循环结束时,使用空白print() 引入新行。

    for i in range(1,r+1):
        for j in range(1,c+1):
            currentNumber = i**j
            print ("{0:>{1}}".format(currentNumber ,numberLength), end=' ')
        print()
    

    演示:

    Please enter a number 5
    Please enter a number 5
       1    1    1    1    1 
       2    4    8   16   32 
       3    9   27   81  243 
       4   16   64  256 1024 
       5   25  125  625 3125 
    

    【讨论】:

    • 啊!所以我几乎是对的,只是括号放错了地方。谢谢老哥!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多