0

我是python的新手。当我试图编写简单的代码时,我遇到了一个我无法理解的特殊问题。以下是代码

def myLog(x, b):
    temp = b
    def mylog(x,b):
        while b <= x :
            mylog(x,b*temp)
        return b/temp - 1
    return mylog(x,b)
myLog(16,2)

为什么这段代码会导致无限循环?

编辑: 我发现了它导致无限循环的原因。这是修改后的代码。我忘记在内部函数定义中使用return语句

    def myLog(x, b):
        temp = b
        def mylog(x,b):
             while b <= x :
                  return mylog(x,b*temp)
             return b/temp - 1
        return mylog(x,b)

我的日志(16,2)

4

1 回答 1

2

循环中既没有b也没有x修改,所以比较结果永远不会改变。

于 2012-11-04T04:24:33.427 回答