2008-12-03 33 views
14

Bazılarınız bunu Project Euler'in 11 numaralı problemi olarak tanıyabilir.Python: Geçersiz Token

Ben büyük boyutlu dizide ızgara çoğaltmak için çalışıyorum, Ama bana bir sözdizimi hatası veriyor ve

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

Ve bu hatayı alıyorum neden ben emin değilim:

 
    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 

Virgül neden bir hata veriyor?

cevap

37

Bence, 0 ile bir değişmez sayı başlattığınızda, bunu sekizlik bir sayı olarak yorumlar ve sekizli bir sayı içinde '8' olamaz.

3

Hatadaki "^" sembolünün tam olarak hatalı sütuna işaret ettiğini unutmayın. Satır numarasıyla birlikte 8 rakamını tam olarak gösterir. Bu, Jeremy'nin önerdiği şeylere sizi yönlendirebilir.

+0

Güzel bir ipucu vermiş olmanıza rağmen, bu soruya cevap vermiyor. Bu yüzden bunun bir yorum ve bir cevap olması gerektiğini düşünüyorum. -1. – Bonifacio2

+1

@ Bonifacio2: Sadece bu bir cevap değil, aynı zamanda OP'nin sorusunu tam olarak cevaplamıyor olsa bile iyi bir fikir olduğunu düşünüyorum. Bu yanıt, OP'nin sahip olduğu sözdizimi hatasını ayrıştırmasına yardımcı olur. Asıl olarak (düzenleme öncesinde) "Neden virgülden sonra hata atıyor?" Diye sordu. Aslında hata, virgülden önce ve cevabım, hatanın nerede olduğunu anlamasına yardımcı olabilir. "Bir adama balık ver ve onu bir günlüğüne besle, balık tutmayı öğret ve onu ömür boyu besle" – yairchu

1

Sadece baştaki sıfırları kaldırın.

İlk sıfır, sekizlik yapar.

İlgili konular