2013-04-11 66 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