Python 3错误理解错误(索引器错误)

2024-06-16 11:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码

def abc(l,z):
    L=[]
    länge= len(L)
    for x in range(0, länge+1):
        L[x]+z
        print(L)

abc(["1","2","3"],"-")

我要程序输出“1-2-3”

l inabc(l,z)应该是一个字符串列表,它将"l""z"组合成一个字符串

我得到一个Index Error: list index out of range


Tags: 字符串in程序密码列表forindexlen
1条回答
网友
1楼 · 发布于 2024-06-16 11:28:22

这里有几个问题

首先,range(0, länge+1)将在länge处停止,但是您的列表只有从0
länge - 1的索引,所以这是IndexError的一个来源

其次,L[x]+z将给您另一个IndexError,因为L是空的,但是您尝试访问L[0](在下一次迭代中,由于错误,L[1]L[2],等等)

第三,即使没有IndexError,语句L[x]+z也不会起任何作用。你计算L[x]+z的值,但是你没有给它赋值,所以它会立即丢失

第四,为了print您的最终结果,将对print的调用放在for循环之后,而不是内部。如果您真的想对函数产生的结果做些什么,请考虑使用return而不是print(请务必了解printreturn之间的区别)

第五,您希望构建一个字符串,因此listL的用法没有多大意义。从一个空字符串开始,将当前项从lz添加到循环体中(再加上一个重新赋值,以避免丢失新计算的值)

最后,在这里使用range是没有意义的。只需编写for x in l:,就可以直接遍历列表中的值

这应该给你足够的时间来处理和修复你的代码

(如果你不在乎为什么你的函数不起作用,而且这不是一个练习,只需按照注释中的建议使用str.join。)

相关问题 更多 >