Получение ошибки, которая, кажется, не имеет большого смысла. - PullRequest
3 голосов
/ 13 сентября 2011

Я получаю сообщение об ошибке, которое ссылается на один из моих словарей в коде. Но я не могу найти ничего, что могло бы вызвать проблему. Что-то, вероятно, ускользает из моих глаз, но вот ошибка из командной строки pdb в любом случае.

Чтобы объяснить, что происходит, это довольно большой словарь, и он говорит мне, что дает программе «Синтаксическая ошибка: неверный синтаксис». Стрелка не имеет большого смысла, чтобы сказать мне, что .... Keynote еще раз, это результат pdb.

distinctiveFeatures = ({1:'Beak',2:'Blood-Drenched',3:'Boiling or Steaming B
ody',4:'Constantly Shedding',5:'Distinctive Markings',6:'Elongated Neck',7:'Hood
',8:'Expanded bone Structure',9:'Albino',10:'Eye Stalks',11:'Glowing Eyes',12:'H
air',13:'Horns',14:'Lizard-Like Fin',15:'Fish-Like Fin',16:'Icy or Cold Body',17
:'Illusionary Features',18:'Metal-Like Features',19:'Multiple Arms',20:'Multiple
Heads',21:'Antlers',22:'Multiple Legs',23:'Multiple Eyes',24:'Stinger',25:'Odor
',26:'On Fire',27:'Oozing Sores',28:'Plant Features',29:'Prehensile Tongue',30:'
Pulsating Skin',31:'Faces',32:'Rocklike Features',33:'Rubber boned',34:'Rubbery
Body',35:'Scales',36:'Serpent Appendages',37:'Shade Form',38:'Shambling Gait',39
:'Shell',40:'Shimmering Body',41:'Skeletal Appearance',42:'Slimy',43:'Speech',44
:'Suction Cups on Limbs',45:'Tail',46:'Tentacles',47:'Transparent',48:'Unusual C
olor',49:'Weapons for Hands',50:'Wet or Drenched Body'51:'Wings',52:'Mechanical
Features',53:'Multiple Features',54:'Special'})



                                                       ^

Ответы [ 3 ]

7 голосов
/ 13 сентября 2011

Отсутствует запятая перед 51.

В будущем, чтобы помочь отследить этот вид ошибки, полезно не помещать все в одну гигантскую строку, разбить ее на несколько строк.Таким образом, стрелка будет более полезной.

2 голосов
/ 13 сентября 2011

enter image description here Вам не хватает запятой.

Кстати, почему вы ставите словарь в скобках?Вы можете сделать ({ ..},), чтобы сделать словарь первым элементом кортежа или просто {..} для простого словаря

Используя редактор, отображающий синтаксическую раскраску (например, * 1012)* Idle или SciTe ) очень помогает.

Поскольку все ваши ключи целые, возможно, проще было бы создать список :

distinctiveFeatures = ['Beak', 'Blood-Drenched', 'Boiling or Steaming Body', 'Constantly Shedding', 'Distinctive Markings', 'Elongated Neck', 'Hood', 'Expanded bone Structure', 'Albino', 'Eye Stalks', 'Glowing Eyes', 'Hair', 'Horns', 'Lizard-Like Fin', 'Fish-Like Fin', 'Icy or Cold Body', 'Illusionary Features', 'Metal-Like Features', 'Multiple Arms', 'MultipleHeads', 'Antlers', 'Multiple Legs', 'Multiple Eyes', 'Stinger', 'Odor', 'On Fire', 'Oozing Sores', 'Plant Features', 'Prehensile Tongue', 'Pulsating Skin', 'Faces', 'Rocklike Features', 'Rubber boned', 'RubberyBody', 'Scales', 'Serpent Appendages', 'Shade Form', 'Shambling Gait', 'Shell', 'Shimmering Body', 'Skeletal Appearance', 'Slimy', 'Speech', 'Suction Cups on Limbs', 'Tail', 'Tentacles', 'Transparent', 'Unusual Color', 'Weapons for Hands', 'Wet or Drenched Body', 'Wings', 'MechanicalFeatures', 'Multiple Features', 'Special']

чтобы получить ваш элемент:

distinctiveFeatures[0]

дает

'Beak'
2 голосов
/ 13 сентября 2011

В элементе 50 отсутствует запятая.

Вы можете упростить эту строку для устранения таких ошибок.Начните с удаления половины строки между фигурными скобками.

Если проблема сохраняется, продолжайте делить оставшуюся часть пополам до тех пор, пока не найдете крошечный фрагмент, вызвавший ошибку, и исправьте ее.

...