【问题标题】:Print statement alignment and padding打印语句对齐和填充
【发布时间】:2013-05-04 03:23:27
【问题描述】:

对不起,如果标题有点误导,但我对相关的标题名称有点不确定。

我试图在这里围绕一些像 sn-p 的文本框:

Die1 = random.randint(1,10)
Die2 = random.randint(1,10)
Die3 = random.randint(1,10)

if Die1 > Die2:
    print ("+------------------------------+")
    print ("|  Die 1:  |       |    Die 2  |")
    print ("|    %d     |       |      %d    |" % (Die1,Die2))
    print ("+------------------------------+")


else:
    print ("+------------------------------+")
    print ("|  Die 1:  |       |    Die 2  |")
    print ("|    %d     |       |      %d    |" % (Die1,Die2))
    print ("+------------------------------+")

如果我得到 1 位数字的结果,这一切都是花花公子:

+------------------------------+
|  Die 1:  |       |    Die 2  |
|    2     |       |      6    |
+------------------------------+

但是 twp 数字会给我这个:,另一个空格将被推出两个十。

+------------------------------+
|  Die 1:  |       |    Die 2  |
|    10     |       |      2    |
+------------------------------+

我可以这样做:

if Die1 > Die2 and Die1 or Die2 == 10:
    print ("+------------------------------+")
    print ("|  Die 1:  |       |    Die 2  |")
    print ("|      %d     |       |      %d    |" % (Die1,Die2))
    print ("+------------------------------+")

等等...但我确信有更实用的方法可以做到这一点。

有没有办法使用单个数字来表示 &s ?和/或一些填充以允许在需要时使用第二个数字。

我查看了有关此事的 Python 文档,并阅读了一些 0 的填充选项,但没有任何内容可以直接帮助我。

【问题讨论】:

    标签: python python-2.7 python-3.x


    【解决方案1】:

    您可以使用string.format 函数来填充空格:(请注意,此函数在 python 2 和 python 3 中都有效)

    "|      {0: >2d}     |       |      {1: >2d}    |".format(Die1,Die2)
    

    {}s 中,01 表示引用的是哪个参数,冒号后面的空格是填充字符,> 表示右对齐文本,2是文本的宽度,d 指定参数是整数。

    示例输出:

    | 2 | | 9 | | 10 | | 12 |

    【讨论】:

    • 我希望他使用的是 python 2 或 python 3!为答案+1。
    • @NolenRoyalty 我也希望如此。我想我主要是指定它适用于两个版本。
    • 我明白了,我误会了。这很有意义。
    • 太棒了,很好用,0 和 1 代表订单,2d 代表地点?,你还记得你从哪里得到这些信息的吗?谢谢
    • @bennyboy 如果您单击帖子中的链接,它将带您进入定义的定义(如果您向下滚动,也会有很多示例)。不过,为了清楚起见,我会在答案中说明它们的含义。
    【解决方案2】:

    您可以打印带有填充 0 的整数:

    "|    %02d     |       |      %02d    |" % (Die1,Die2)
    

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 2015-10-13
      • 2010-12-13
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2018-01-23
      相关资源
      最近更新 更多