2008-12-03 142 views
14

你们中的一些人可能认识到这是Project Euler的问题11。Python:无效令牌

我试图复制在一个大的多维数组的网格,但它给我一个语法错误,我不知道为什么

grid = [ 
[ 08, 02, 22, 97, 38, 15, 00, 40, 00, 75, 04, 05, 07, 78, 52, 12, 50, 77, 91, 08 ], 
[ 49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 04, 56, 62, 00 ], 
[ 81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 03, 49, 13, 36, 65 ], 
... 

而且我得到这个错误:

 
    File "D:\development\Python\ProjectEuler\p11.py", line 3 
    [ 08, 02, 22, 97, 38, 15, 00, 40, 00, 75, 04, 05, 07, 78, 52, 12, 50, 77, 91 , 08 ], 
    ^SyntaxError: invalid token 

为什么它在逗号前面抛出一个错误?

回答

37

我认为当你开始一个0的文字数字时,它将它解释为一个八进制数,而你不能在八进制数中有'8'。

3

请注意,错误中的“^”符号完全指向错误的列。与行号一起指向数字8上。这可以帮助您引导Jeremy提出的建议。

+0

虽然你提供了一个很好的提示,但这并没有回答这个问题。所以我认为这应该是一个评论,而不是一个答案。 -1。 – Bonifacio2 2014-09-22 18:49:10

1

只删除前导零。

第一个零使数字八进制。