the_count = [001, 002, 003, 004, 005]
for number in the_count:
print(number)
输出是:
1
2
3
4
5
我的预期输出是:
001
002
003
004
005
答案 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))