3

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

我试图围绕一些像这里的片段制作一个文本框:

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 Doc,并阅读了一些 0 的填充选项,但没有任何东西可以直接帮助我。

4

2 回答 2

8

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

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

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

示例输出:

| 2 | | 9 |
| 10 | | 12 |
于 2013-05-04T03:33:21.823 回答
1

您可以使用填充的 0 打印整数:

"|    %02d     |       |      %02d    |" % (Die1,Die2)
于 2013-05-04T03:28:40.773 回答