假设我有以下代码:
lim = #whatever number
for i in range(lim, -1, -1):
print(str(i) + "|")
例如,如果lim
为20,则输出为:
20|
19|
...etc
5|
4|
...etc
|
始终打印在数字后面,但我希望|
在打印时对齐,以便我的输出如下所示:
20|
19|
...etc
5 | <--Notice a space after single digit
4 |
...etc
现在,如果知道lim
有多少位数,这很容易,例如,如果我知道它有两位数我可以使用以下数字:
print('{:<2}|'.format(i))
但是,如果我事先不知道|
的数字,我如何保持lim
符号对齐。例如,假设允许用户输入lim
的任何值,如何确保所有内容都正确对齐?
答案 0 :(得分:3)
使用log
from math import log
pad = int(log(lim, 10)) # lim can't be 0
for i in range(lim, -1, -1):
print('{num:<{pad}}|'.format(pad=pad, num=i))
答案 1 :(得分:2)
您可以在打印之前使用lim的len
来构建格式:
>>> lim=123
>>> f = '{:<'+str(len(str(lim)))+'}|'
>>> f.format(2)
'2 |'
>>> lim=1234
>>> f = '{:<'+str(len(str(lim)))+'}|'
>>> f.format(2)
'2 |'