2008-12-03 39 views
14

Một số bạn có thể nhận ra đây là số bài toán của Project Euler 11. Một số có lưới.Python: Mã thông báo không hợp lệ

Tôi đang cố gắng để tái tạo lưới điện trong một mảng đa chiều lớn, Nhưng nó đem lại cho tôi một lỗi cú pháp và tôi không chắc chắn lý do tại sao

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

Và tôi nhận được lỗi này:

 
    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 

Tại sao nó ném một lỗi trước dấu phẩy?

Trả lời

37

Tôi nghĩ rằng khi bạn bắt đầu một chữ số với số 0, nó diễn giải nó dưới dạng số bát phân và bạn không thể có '8' trong số bát phân.

3

Lưu ý rằng ký hiệu "^" trong lỗi chính xác đến cột sai. Cùng với số dòng nó chỉ chính xác trên chữ số 8. Điều này có thể giúp đưa bạn đến những gì Jeremy gợi ý.

+0

Mặc dù bạn đã cung cấp mẹo hay nhưng điều này không trả lời được câu hỏi. Vì vậy, tôi nghĩ rằng đây phải là một bình luận và không phải là một câu trả lời. -1. – Bonifacio2

+1

@ Bonifacio2: Tôi nghĩ rằng đây không chỉ là câu trả lời, mà còn là câu trả lời hay nhất, ngay cả khi nó không trả lời đầy đủ câu hỏi của OP. Câu trả lời này giúp OP phân tích cú pháp lỗi cú pháp. Ban đầu (trước khi chỉnh sửa), anh ta hỏi "Tại sao nó lại ném một lỗi sau dấu phẩy?" khi trong thực tế, lỗi là trước dấu phẩy và câu trả lời của tôi có thể giúp anh ta tìm ra lỗi ở đâu. "cung cấp cho một người đàn ông một con cá và bạn nuôi anh ta trong một ngày; dạy một người đàn ông để cá và bạn nuôi anh ta suốt đời" – yairchu

1

Chỉ cần xóa số 0 đứng đầu.

Số 0 đầu tiên tạo số bát phân.

Các vấn đề liên quan