Python: 无效的标记
有些人可能会认出这是Project Euler的第11个问题,就是那个有网格的题目。
我正在尝试在一个大的多维数组中复制这个网格,但它给我报了语法错误,我不太明白为什么。
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
为什么在逗号之前会出现错误呢?
3 个回答
1
只需要去掉前面的零。
第一个零会让这个数字变成八进制。
3
注意,错误信息中的“^”符号正好指向出错的那一列。再加上行号,它正好指向数字8。这可以帮助你找到Jeremy提到的内容。
40
我觉得当你用0开头写一个数字时,程序会把它当作八进制数字来理解,而八进制数字里是不能有'8'这个数字的。