我通过日志功能测试单词编号是否为2的幂。如果单词数字很低,我会将单词附加到'。'直到长度变为2的幂。例如,如果单词(W)是' abcd',则len(W)= 4,即2 ^ 2。该功能将停止。如果W是' abcdef',len(W)= 6,我想通过'附加单词。',因此它变为' abcdef ..&# 39;新的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)
程序以"最大递归"停止。我认为情况属实。什么似乎有问题?
工作脚本。我更改了isinstance函数。
import math
def powerOf2(W):
logP = math.log2(len(W))
if (logP).is_integer():
return W
else:
W.append('.')
powerOf2(W)
答案 0 :(得分:2)
您需要返回递归:
import math
def powerOf2(W):
logP = math.log2(len(W))
if isinstance(logP, int):
return W
else:
W.append('.')
return powerOf2(W)