首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么即使条件是真,我的函数也不会停止呢?

为什么即使条件是真,我的函数也不会停止呢?
EN

Stack Overflow用户
提问于 2017-11-24 16:29:46
回答 1查看 39关注 0票数 0

我在用日志函数测试单词数是否是2的幂。如果单词数字较低,我会用‘’“来附加这个单词。”直到长度变成2的幂,例如,如果单词(W)是'abcd',则len(W) = 4,即2^2。函数将停止。如果W是'abcdef',则len(W) = 6,我想把这个单词加在'.',这样它就变成‘abcdef.’新的W长度为8,即2^3。

请检查一下我需要更改的地方。

代码语言:javascript
复制
import math

def powerOf2(W):
    logP = math.log2(len(W))
    if isinstance(logP, int):
        return W
    else:
        W.append('.')
        powerOf2(W)

当我跑的时候

代码语言:javascript
复制
W = list('abcd')
powerOf2(W)

程序以“最大递归”结束。我以为条件是真的。有什么问题吗?

工作脚本。i更改了isinstance函数。

代码语言:javascript
复制
import math

def powerOf2(W):
    logP = math.log2(len(W))
    if (logP).is_integer():
        return W
    else:
        W.append('.')
        powerOf2(W)
EN

Stack Overflow用户

发布于 2017-11-24 16:45:39

您需要返回递归:

代码语言:javascript
复制
import math

def powerOf2(W):
    logP = math.log2(len(W))
    if isinstance(logP, int):
        return W
    else:
        W.append('.')
        return powerOf2(W)
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47477062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档