我想打印与列表

时间:2016-04-18 09:41:56

标签: python python-2.7

the_count = [001, 002, 003, 004, 005]
for number in the_count:
    print(number)

输出是:

1
2
3
4
5

我的预期输出是:

001
002
003
004
005

4 个答案:

答案 0 :(得分:2)

您应该将数字存储为字符串,同时将bcoz定义为整数001与1(对于我们)相同,这也是python意外存储的内容。但是在Python中,带前导'0'的数字表示八进制数(基数为8)。所以它会一直工作到007.

>>> a = 001
>>> a
1
>>> a = '001'
>>> a
'001'
>>> the_count = ['001', '002', '003', '004', '005']
>>> for i in the_count:
    print i
001
002
003
004
005

但是一旦你通过了八进制限制就会失败。八进制数为0,1,2,3,4,5,6,7,10,11等。

>>> a = 008
SyntaxError: invalid token

答案 1 :(得分:1)

print('{0:03d}'.format(number))

或者看看zfill或rjust

答案 2 :(得分:1)

您打算在八进制的第一行的列表中指定整数值吗?因为这就是你在Python 2中所做的事情(在Python 3中,列表值是SyntaxError s)。 Python 2将以0开头的任何多位整数文字视为以八进制格式给出的数值(请参阅Python 2文档的Integer and long integer literals部分中的 octinteger 。)

如果这是您的目标,那么您可以将每个值格式化为3位八进制数字,并带有前导零,如下所示:

the_count = [001, 002, 003, 004, 005]
for number in the_count:
    print(format(number, '03o'))

在Python 3中,八进制文字的规则略有不同,第一行必须更改为:

the_count = [0o001, 0o002, 0o003, 0o004, 0o005]

答案 3 :(得分:0)

试试这个:

the_count = [001, 002, 003, 004, 005]
for number in the_count:
    print(str(number).zfill(3))