python - 如何从递归末尾消除 'None'

标签 python recursion towers-of-hanoi

我有以下代码:

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 个磁盘的汉诺塔所需的移动,并计算成功需要多少磁盘,但在所有移动之后,有一个 'None' 我想摆脱这个 - 你能帮忙吗?

最佳答案

删除print语句,只调用MoveTower(n)而不打印它的返回值:

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

所有 python 函数返回一些 值。如果您没有显式返回任何内容,则默认值为 None。调用 print MoveTower(n) 打印 MoveTower() 返回的默认 None

关于python - 如何从递归末尾消除 'None',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949601/

相关文章:

python - 如何在Python中根据3个预定义列表(f'{list1}_{list2}_{lists} ')动态生成变量名称?

c++ - 分区问题的递归函数

algorithm - haskell中的递归函数

python - 汉诺塔的解释

c++ - 在 C++ 中使用它时出错

python - 在 Pandas 数据框中,如何计算每个月内每个十分位数的中值

python - 在 CVXPY 中对变量矩阵的部分转置设置约束

python - Sphinx autodoc 使用模拟卡在 random.choice() 上

java - 我将如何像这样打印出递归跟踪?

scala - 递归地向数据框添加行