Python AttributeError: объект «NoneType» не имеет атрибута «метка». При запуске алгоритма Дейктры для получения кратчайшPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python AttributeError: объект «NoneType» не имеет атрибута «метка». При запуске алгоритма Дейктры для получения кратчайш

Сообщение Anonymous »

https://github.com/cburzo1/Python_Project_Problems.git
#Отказ от ответственности::Этот код имеет длину 228 строк, и я не уверен, разрешено ли это при переполнении стека, но я разместил выше репозиторий для клонирования всего проекта. Ошибка, которую я получаю, кажется простой. Но, похоже, мне нужен полный код, чтобы создать эту проблему#
В этом проекте Python я использую цепную хэш-таблицу, график и алгоритм Дейктры, чтобы создайте программу, которая найдет кратчайший путь для доставки всех пакетов в CSV-файле пакета с идентификаторами от 1 до 40. В коде Python в строке 213 вы увидите фиктивный массив:

Код: Выделить всё

arr = [1, 2, 3]
Каждое число в массиве представляет идентификатор пакета. Если вы посмотрите на строки ниже: с 215 по 228, именно здесь начинают возникать проблемы, и я, конечно, понятия не имею, почему это происходит. Ниже я начну излагать свою основную ошибку, дайте мне знать, если вам нужна доработка проекта в целом.
в строках с 215 по 218:

Код: Выделить всё

pkS1 = 0
pkE1 = city_arr2.index(""+packageLookUp(arr[0]).addr+"\n("+packageLookUp(arr[0]).zipcode+")")

print(getMinimumDistanceBetween2Cities(pkS1, pkE1) + 0)
Массив city_arr2 содержит только названия городов, и мне нужно получить индекс, передав строку, состоящую из адреса и почтового индекса (получение индекса поможет мне найти адрес назначения в таблица расстояний csv). Адрес в CSV-файле пакета — это место, по которому пакет должен быть доставлен, поэтому здесь я просто пытаюсь доставить пакет с идентификатором 1 из концентратора и ввожу 0 в качестве начального адреса и индекс (который соотносит адрес назначения в хеш-таблицы до индекса адреса в таблице расстояний), чтобы найти кратчайший путь между двумя адресами.
Само собой, если закомментировать строки: 220 - 228, этот код работает нормально и производит ожидаемые результаты.
Проблемы возникают, когда я раскомментирую все от 215 до 228 вот так:

Код: Выделить всё

pkS1 = 0
pkE1 = city_arr2.index(" "+packageLookUp(arr[0]).addr+"\n("+packageLookUp(arr[0]).zipcode+")")

print(getMinimumDistanceBetween2Cities(pkS1, pkE1))

pkS2 = city_arr2.index(" "+packageLookUp(arr[0]).addr+"\n("+packageLookUp(arr[0]).zipcode+")")
pkE2 = city_arr2.index(" "+packageLookUp(arr[1]).addr+"\n("+packageLookUp(arr[1]).zipcode+")")

print(getMinimumDistanceBetween2Cities(pkS2, pkE2))

pkS3 = city_arr2.index(" "+packageLookUp(arr[1]).addr+"\n("+packageLookUp(arr[1]).zipcode+")")
pkE3 = city_arr2.index(" "+packageLookUp(arr[2]).addr+"\n("+packageLookUp(arr[2]).zipcode+")")

print(getMinimumDistanceBetween2Cities(pkE3, pkS3))
PkS3 и pkE3 выдают следующую ошибку:
[img]https://i.sstatic .net/lgTTu89F.png[/img]

Каждый отдельный вызов getMinimumDistanceBetween2Cities(pkS2, pkE2) даст мне ожидаемые результаты (учитывая, что начальный адрес меньше конечного). Но когда они соединены вместе, это приведет к этой ошибке. Мне нужна помощь в понимании этого вопроса немного лучше. Надеюсь, этой информации достаточно.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -running-d
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»