2014-03-06 2 views
1

저는 초보자 인 python을 사용하려고합니다. 내가 작업중인 코드는 http://www.python.org/doc/essays/graphs/ 입니다. 목표는 사전과 재귀 함수를 사용하여 두 노드 사이의 경로를 얻는 것입니다. 내가 그것을 실행할 때 출력이나 오류가 발생하지 않습니다. 나는이 문제를 일으킬 수있는 것에 대해 주로 포인터를 찾고 있습니다.재귀 함수 - 오류 및 출력 없음

def find_path(graph, start, end, path=[]): 
    path = path + [start] 
    if start == end: 
     return path 
    if not graph.has_key(start): 
     return None 
    for node in graph[start]: 
     if node not in path: 
      newpath = find_path(graph, node, end, path) 
      if newpath: return newpath 
    return None 

graph = {'A': ['B','C'],'B': ['C','D'],'C': ['D'],'D': ['C'],'E': ['F'],'F': ['C']} 
find_path(graph,'A','D')  
+7

위의 코드에 'print'또는 output 문이 포함되어 있지 않습니까? 그렇지 않다면,'find_path (graph, 'A', 'D')'print를 시도하고 무슨 일이 일어나는 지보십시오. – mdml

+1

또한 [기본 '경로'값을 변경하고 싶을 수도 있습니다.] (http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument). 현재로서는 문제를 일으키지 않습니다 만, find_path를 전혀 변경하지 않으면, 버그가 될 가능성이 큽니다. – user2357112

+0

인쇄를 추가하여 수정했습니다. 내가 갈 길이 멀다. – user3389446

답변

1

경로 찾기를 실행 한 후 어떻게 든 결과를 출력해야합니다. 한 가지 방법은 Python에 내장 된 print function을 사용하여 path을 표준 출력 (터미널 또는 콘솔)으로 출력합니다. 예 :

print find_path(graph, 'A', 'D')