![](/img/trans.png)
[英]Adding whitespaces to Python 3 format string using number of digits of integer
[英]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.