假设我有一个任意数字:
my_number = 898
我想创建一个计数到该数字的循环,使用当前计数的填充等于该最大数字的数字。换句话说,如果my_number
长度为5位,那么当计数为1时,它应该为----1
,其中每个-
是填充中的一个空格。同样,如果我们的数字是500,那么它应该像这样填充:--500
。示例循环:
for i in range(my_number):
print( '{}: Current Number'.format(i) )
我希望我很清楚。我只是不知道这样做的“pythonic”方式是什么。我想在python中有一些干净的方法,但我不禁想到一个需要几行代码的麻烦的解决方案。
答案 0 :(得分:5)
您可以使用right-aligned format
specifier:
In [23]: num = 15
In [24]: for x in range(num):
print("{0:>{1}}".format(x, len(str(num))))
....:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
答案 1 :(得分:4)
这样的东西?
>>> my_number = 15
>>> for i in range(my_number):
... strung = str(i)
... print('-'*(len(str(my_number))-len(strung))+strung) # If you want spaces instead of dashes, do print(' '*(len(.......
...
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
10
11
12
13
14