1

假设我有一个任意数字:

my_number = 898

我想创建一个计数到该数字的循环,使用当前计数的填充等于该最大数字的位数。换句话说,如果my_number是 5 位长,那么当计数为 1 时,它应该读取----1,其中每个-是填充中的一个空格。同样,如果我们的编号为 500,那么它应该像这样填充--500:示例循环:

for i in range(my_number):
    print( '{}: Current Number'.format(i) )

我希望我很清楚。我只是不知道这样做的“pythonic”方式是什么。我想在 python 中有一些干净的方法可以做到这一点,但我不禁想到一个需要几行代码的繁琐解决方案。

4

2 回答 2

5

您可以使用右对齐format说明符

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
于 2013-07-28T04:05:18.097 回答
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
于 2013-07-28T04:00:07.280 回答