我在尝试制作字典时遇到过这种情况。
8&当他们面前00
时,9不起作用。
但其他所有人都做得很好。它与019, 099
相同。
使用2.7
b = {000 : "a",
001 : "b",
002 : "c",
003 : "d",
004 : "e",
005 : "f",
006 : "g",
007 : "h",
8 : "i",
9 : "j"}
print b[001]
print b[8]
虽然这不是吗?
a = {000 : "a",
001 : "b",
002 : "c",
003 : "d",
004 : "e",
005 : "f",
006 : "g",
007 : "h",
008 : "i",
009 : "j"}
print a[001]
print a[008]
答案 0 :(得分:5)
在Python 2中,您可以通过使用0
预先定义八进制文字来定义八进制文字。由于八进制数字仅包含数字0-7
,008
和009
无效。
在Python 3中对此进行了更改,八进制文字现在以0o
或0O
为前缀(数字“0”后跟字母“O”)。这类似于十六进制文字的0x
表示法,二进制文件的0b
表示法。
答案 1 :(得分:3)
您正在使用以0开头的整数文字,它们被解释为八进制数字(其数字范围仅为0-7)。你可能想要
b = {'000': "a",
'001': "b",
'002': "c",
'003': "d",
'004': "e",
'005': "f",
'006': "g",
'007': "h",
'008': "i",
'009': "j"}
如果前导零是重要的;作为整数,用于指定整数(0, 000, 0x00, etc)
的表示法无论如何都不会影响实际值。