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

问题描述

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

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 (将#修改为@)