打印语句对齐和填充

2024-10-06 10:35:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试着做一个文本框,比如下面的片段:

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位数的结果,那就太好了:

^{pr2}$

但是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的填充选项,但是没有什么可以直接帮助我的。在


Tags: 名称标题if数字randomelseprint文本框
2条回答

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

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

您可以使用^{}函数填充空格:(注意,这个函数在python2和python3中都可以工作)

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

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

输出示例:

^{pr2}$

相关问题 更多 >