繁体   English   中英

有没有办法根据最大位数修改字符串格式?

[英]Is there a way to modify string format according to the max number of digits?

例如,我有:

def MultTable(L,R):
    '''L and R are ranges'''
    lastL = L[len(L)-1]
    lastR = R[len(R)-1]
    digits1 = lastL //10
    digits2 = lastR //10
    for a in L:
        for b in R:
            print('{:3d}x{:3d}= {:3d}'.format(a, b, a*b))
    9   x   8   =   72
    9   x   9   =   81
    9   x   10  =   90
    10  x   8   =   80
    10  x   9   =   90
    10  x   10  =   100
    11  x   8   =   88
    11  x   9   =   99
    11  x   10  =   110

我有这样的代码,但我只能打印预定格式的代码。

我们如何根据最大位数格式化打印 function?

我一直在尝试从列表中获取最大位数,但我似乎无法将其应用于格式。

首先使用动态计算的所需位数创建格式字符串,然后用所需值填充字符串。

def MultTable(L, R):
    """L and R are ranges."""
    digitsL = len('{}'.format(L[-1]))
    digitsR = len('{}'.format(R[-1]))
    digitsProd = len('{}'.format(L[-1]*R[-1]))
    for a in L:
        for b in R:
            fs = '{{:{}d}} x {{:{}d}} = {{:{}d}}'.format(digitsL + 1, digitsR + 1, digitsProd + 1)
            print(fs.format(a, b, a*b))


MultTable(L=range(7,9), R=range(9,11))
print()
MultTable(L=range(99,101), R=(6,7))

Output 喜欢:

 7 x   9 =  63
 7 x  10 =  70
 8 x   9 =  72
 8 x  10 =  80

  99 x  6 =  594
  99 x  7 =  693
 100 x  6 =  600
 100 x  7 =  700

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM