2013-04-11 51 views
1

我有以下代碼:如何根除遞歸結束「無」

n=input('How many disks?') 

def MoveTower(n, source='A', dest='C', store='B'): 
    if n==1: 
     print source + '->' + dest 
    else: 

     MoveTower(n-1, source, store, dest) 
     MoveTower(1, source, dest, store) 
     MoveTower(n-1, store, dest, source) 

print MoveTower(n) 
print str(2**n-1), 'moves total' 

下面的代碼返回解決河內的塔具有n個磁盤所需的移動計算多少磁盤要求成功了,但是在所有的舉動之後,有一個'無' 我想擺脫這個,你能幫忙嗎?

回答

5

取出print聲明,只需撥打MoveTower(n),而不進行打印的返回值:

MoveTower(n) 
print str(2**n-1), 'moves total' 

所有 Python函數返回一些值。如果您沒有明確返回任何內容,則默認值爲None。調用print MoveTower(n)將打印MoveTower()返回的默認None

+0

非常感謝,這是一個完美的簡潔和易於理解的答案。我會把它帶到我的編程的未來。 – user2095044 2013-04-11 13:19:29