我在用日志函数测试单词数是否是2的幂。如果单词数字较低,我会用‘’“来附加这个单词。”直到长度变成2的幂,例如,如果单词(W)是'abcd',则len(W) = 4,即2^2。函数将停止。如果W是'abcdef',则len(W) = 6,我想把这个单词加在'.',这样它就变成‘abcdef.’新的W长度为8,即2^3。
请检查一下我需要更改的地方。
import math
def powerOf2(W):
logP = math.log2(len(W))
if isinstance(logP, int):
return W
else:
W.append('.')
powerOf2(W)当我跑的时候
W = list('abcd')
powerOf2(W)程序以“最大递归”结束。我以为条件是真的。有什么问题吗?
工作脚本。i更改了isinstance函数。
import math
def powerOf2(W):
logP = math.log2(len(W))
if (logP).is_integer():
return W
else:
W.append('.')
powerOf2(W)发布于 2017-11-24 16:45:39
您需要返回递归:
import math
def powerOf2(W):
logP = math.log2(len(W))
if isinstance(logP, int):
return W
else:
W.append('.')
return powerOf2(W)https://stackoverflow.com/questions/47477062
复制相似问题