微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

递归调用中的索引超出范围

如何解决递归调用中的索引超出范围

当我尝试多次调用函数时,索引超出范围。我是编程新手,无法弄清楚为什么或如何解决它。 在以下情况下,代码可以正常工作:

if n == 9:
    return strng

这是我的代码

def swap(n,strng): # helper
    s = ""
    for i in range(len(strng)):
        s += strng[i-n]
    return s

def encode(n,strng):
    temp_lst = []
    result = ""
    space_idx = [i for i in range(len(strng)) if strng[i] == " "]
    if n == 8: # works when 9
        return strng
    
    temp_lst.extend(encode(n-1,swap(n,"".join(strng.split()))))
    for insert_idx in space_idx:
       temp_lst.insert(insert_idx," ")
    for i in "".join(temp_lst).split():
        result +=  encode(n-1,swap(n % len(i),i))
        result += " "
    return result


 
print(encode(10,"the quick brown fox jumps over the lazy dog."))

提前感谢,如果您需要更多信息,请告诉我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。