Ошибка «Неожиданный символ после символа продолжения строки» - PullRequest
0 голосов
/ 06 мая 2020

Я прочитал несколько ответов об одном и том же сообщении об ошибке, но не понимаю, как они применимы к моему коду. Я понятия не имею, что с этим не так. Экспортирую модель из ArcGIS в Python. Моя модель проверена в ArcMap, но когда я экспортирую код, я получаю сообщение.

Локальные переменные:

PopulationEllipse_Buffered = "C:\\GIS_Cert\\GIS211\\FinalProject\\FinalLongmont.gdb\\PopulationEllipse_Buffered"
PopulationEllipse_Buffered_w_New_Field = PopulationEllipse_Buffered
PopulationEllipse_Buffered_w_Ranks = PopulationEllipse_Buffered_w_New_Field

Процесс: Добавить поле (3)

arcpy.AddField_management(PopulationEllipse_Buffered, "PopRank", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")

Процесс: поле вычисления (3)

arcpy.CalculateField_management(PopulationEllipse_Buffered_w_New_Field, "PopRank", "calculateIF( !ToBufDist! )", "PYTHON", "def calculateIF(dist):\n if(dist == 0):\n return 5\n elif(dist == 0.5):\n return 4\n else:\n return 3")

print(arcpy.GetMessages(2))

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

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

0 голосов
/ 06 мая 2020

Ну, ваша строка функции недействительна Python, потому что предложения оператора if не имеют отступа:

def calculateIF(dist):
 if(dist == 0):
 return 5
 elif(dist == 0.5):
 return 4
 else:
 return 3

Эти операторы return должны быть с отступом больше, чем if / elif / else (например, добавьте еще один пробел перед return s и после \n s). Но сообщение об ошибке, которое вы получаете, не то, что я ожидал бы, если бы это была проблема, с которой вы столкнулись.

...