Learn Algorithm Design by Building a Shortest Path Algorithm - Step 43

Tell us what’s happening:

I can’t find out the mistake in my code. I don’t understand why it still not passes

Your code so far

my_graph = {
    'A': [('B', 3), ('D', 1)],
    'B': [('A', 3), ('C', 4)],
    'C': [('B', 4), ('D', 7)],
    'D': [('A', 1), ('C', 7)]
}

def shortest_path(graph, start):
    unvisited = list(graph)
    distances = {node: 0 if node == start else float('inf') for node in graph}
    paths = {node: [] for node in graph}
    paths[start].append(start)
    
    while unvisited:
        current = min(unvisited, key=distances.get)

# User Editable Region

        for node, distance in graph[current]:
            pass
            if distance + distances[current] < distances[node]:
              pass

# User Editable Region

    print(f'Unvisited: {unvisited}\nDistances: {distances}\nPaths: {paths}')
    
#shortest_path(my_graph, 'A')

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0

Challenge Information:

Learn Algorithm Design by Building a Shortest Path Algorithm - Step 43

You only need to use pass if you have nothing else in the body after the colon:

  • The pass statements are placeholders and should be replaced with actual logic to update distances and paths.
  • You need to correctly update the distances and paths inside the loop.
  • You should remove the current node from the unvisited list once it’s processed.

that’s what happens in the following steps, if you do all that in this step the tests are not going to accept it

@tapajana01 Nope, that advice is incorrect, unfortunately. Take a closer look at the instructions please:

Use the pass keyword to temporarily fill the body of the if.

so what do I need to do next

Seems like you have an extra pass added in the body of for.