views:

646

answers:

4

Some of you may recognize this as Project Euler's problem number 11. The one with the grid.

I'm trying to replicate the grid in a large multidimensional array, But it's giving me a syntax error and i'm not sure why

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 ],
...

And I get this error:

  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

Why is it throwing an error before the comma?

+18  A: 

I think when you start a literal number with a 0, it interprets it as an octal number and you can't have an '8' in an octal number.

yjerem
+3  A: 

Note that the "^" symbol in the error points exactly to the erroneous column. Together with the line number it points exactly on the digit 8. This can help lead you to what Jeremy suggested.

yairchu
A: 

Just remove leading zeros.

First zero makes number octal.

maxp
A: 

I think that the only option to remove the leading 0 is unacceptable. I have the same problem, and cannot remove the 0 before it. Are there any other solutions?

clone4crw